gingerBill
626b4740b1
Add wasm-ld support for wasm code generation
2020-06-03 13:12:38 +01:00
gingerBill
bf5ce04b24
Improve rules for shifting behaviour
...
Example:
x: u64 = 123;
assert(x >> 64 == 0); // In C this would be 123 because (64 & 0b111111) == 0
a: u64 123;
assert(a << 64 == 0); // In C this would be 123 because (64 & 0b111111) == 0
2020-05-31 13:50:17 +01:00
gingerBill
84fd40de77
Fix rules for recursive initialization with procedure entities; Fix executable name if not given
2020-05-30 12:23:41 +01:00
gingerBill
6ac0fb80a6
Minor tokenizer performance improvements
2020-05-27 12:32:11 +01:00
gingerBill
098699103d
Begin work on supporting wasm32 architecture
2020-05-25 12:46:23 +01:00
gingerBill
2be87169ef
Fix #656
2020-05-24 12:52:08 +01:00
gingerBill
26fe9b0212
Fix SelectorCallExpr with no return values
2020-05-22 23:41:17 +01:00
gingerBill
7bd1039a49
Selector Call Expressions: x->y(123) == x.y(x, 123)
2020-05-22 14:54:30 +01:00
gingerBill
3f23a0b3b0
Fix edge cases of relative pointers
2020-05-17 15:23:27 +01:00
Tetralux
96ed948590
LLVM C backend: Obey directives on blocks, procedures, and expressions
...
e.g: #no_bounds_check / #bounds_check
2020-05-16 17:04:16 +00:00
Tetralux
c4b492fb64
Add bounds checks to LLVM C backend
2020-05-16 14:25:36 +00:00
gingerBill
e1bdaa981a
Relative pointer and relative slices
2020-05-15 18:45:24 +01:00
gingerBill
95e8668b77
Relative pointers in old backend
2020-05-15 17:52:09 +01:00
gingerBill
ff92eb9112
Relative pointers
2020-05-15 17:37:00 +01:00
gingerBill
2630e9ced1
Fix #622 on both backends
2020-05-13 23:00:34 +01:00
gingerBill
de8c1165c2
Fix procedure literal declarations at file scope with -llvm-api
2020-05-13 22:30:38 +01:00
gingerBill
6861ff47bc
Replace entity_of_ident with entity_of_node
2020-05-12 16:28:22 +01:00
gingerBill
0ba3b5c0bd
Fix bug for array-like compounds for LLVM-API
2020-05-12 14:57:37 +01:00
gingerBill
e27f5796d6
Add experimental atom op tables for llvm-backend
2020-05-02 18:45:57 +01:00
gingerBill
f63b9806d2
LLVM API: Fix compound literals with constant parameters to union fields
2020-04-25 14:45:34 +01:00
gingerBill
97f7a558fa
#optional_ok tag for procedures
2020-04-19 21:45:04 +01:00
gingerBill
92402603b9
Change find_or_generator_context_ptr behaviours
2020-04-17 14:02:45 +01:00
gingerBill
4438b3e7af
Fix LLVM API backend for procedure "constant" values
2020-04-17 13:50:28 +01:00
gingerBill
602a651613
Fix name mangling for @(private) entities
2020-04-15 21:58:16 +01:00
gingerBill
f229084baa
Basic polymorphic named procedure parameters for procedures and records
2020-04-13 15:48:56 +01:00
gingerBill
f09b6a4c90
Simplify compiler's Map and create a StringMap specifically for strings
2020-04-13 13:02:30 +01:00
gingerBill
65a2125dba
Add -build-mode=obj
2020-04-13 12:00:40 +01:00
gingerBill
9e698b720f
Change behaviour for zero-sized value types of array-related types; Fix make behaviour to always zero memory
2020-04-12 10:41:44 +01:00
gingerBill
5157619eb7
Support endian specific float on -llvm-api; fix unary - for endian floats
2020-04-11 21:51:43 +01:00
gingerBill
baf5b9edc3
Add runtime.bswap_* required for -llvm-api
2020-04-11 19:26:16 +01:00
gingerBill
62dc99dbef
Begin to make the -llvm-api more general
2020-04-10 19:52:17 +01:00
gingerBill
d659e679fd
Fix defer after return for -llvm-api
2020-04-06 12:17:27 +01:00
gingerBill
ae97c1111a
Fix -llvm-api for typeid comparison with a Type itself
2020-04-06 11:38:53 +01:00
gingerBill
b362ce9a22
Fix selector expressions for map[unknown-key] expressions for -llvm-api
2020-04-04 20:56:56 +01:00
gingerBill
1b3ee7153c
Fix #599 - llvm-api GEP for structs with custom alignment
2020-03-28 16:08:14 +00:00
gingerBill
6d6f8f8da9
LLVM API fixes: for in ^map; complex/quaternion negation
2020-03-28 15:42:46 +00:00
gingerBill
b21993a1c4
Allow ability to reference compound literals like C99 for -llvm-api
2020-03-26 17:33:54 +00:00
gingerBill
b7893082ce
Allow map indices to be referenced &m[key] and return a valid pointer if it exists otherwise nil
2020-03-24 15:51:17 +00:00
gingerBill
796331fea6
Support by-reference semantics in for value_ref, i in &some_array and for key, value_ref in &some_map
2020-03-24 15:33:34 +00:00
gingerBill
53c842e9ba
Change to new by-reference semantics for switch v in &value
2020-03-24 14:43:28 +00:00
gingerBill
93955a0fd8
Remove context.std* parameters; Fix unary boolean not
2020-03-19 15:03:02 +00:00
gingerBill
fc0002ab67
Fix enum type info generation
2020-03-19 12:28:39 +00:00
gingerBill
04fe23a3c8
Have different categories for optimization passes
2020-03-19 10:57:14 +00:00
gingerBill
1707e004ec
Merge branch 'llvm-integration' of https://github.com/odin-lang/Odin into llvm-integration
2020-03-15 14:37:46 +00:00
gingerBill
5169dc07c7
Fix lb_add_proc_attribute_at_index
2020-03-15 14:37:39 +00:00
Joshua Huelsman
4468ddf8f8
LLVM: speed improvement changes.
2020-03-09 03:21:08 -04:00
gingerBill
bf0c6f5a30
Fixes for constants and nil parameters
2020-03-08 19:38:50 +00:00
gingerBill
d1e670335f
Fix lb_find_or_add_entity_string_byte_slice
2020-03-08 18:50:10 +00:00
gingerBill
5a02ebe2c8
Fix foreign import dependencies; Fix lbParamPass_Integer ABI
2020-03-08 17:57:46 +00:00
gingerBill
dae817e5ab
Integrate linker code with the new LLVM API backend
2020-03-08 17:44:08 +00:00