gingerBill
|
d353f97f91
|
Add byval with align, sret attributes for SysV
|
2021-05-11 13:30:27 +01:00 |
|
gingerBill
|
94570a24c1
|
Move anonymous proc generation into lbGenerator
|
2021-05-04 00:56:29 +01:00 |
|
gingerBill
|
a5eea97edb
|
Prepare to multithread object generation
|
2021-05-03 20:45:27 +01:00 |
|
gingerBill
|
d76ba7895b
|
Minor fixes to -use-separate-modules
|
2021-05-03 19:59:17 +01:00 |
|
gingerBill
|
dfe1dedeb1
|
Experimental support for -use-separate-modules
|
2021-05-03 19:39:36 +01:00 |
|
gingerBill
|
746e880eb5
|
Begin work on making LLVM backend work with multiple modules for possible faster compilation
|
2021-05-03 17:43:14 +01:00 |
|
gingerBill
|
b44a56118e
|
Begin cleanup for allowing for multiple LLVM modules
|
2021-05-03 15:26:40 +01:00 |
|
gingerBill
|
406d2ab6ba
|
Simplify/Fix the state_flag behaviour for code generation
|
2021-05-01 17:42:59 +01:00 |
|
gingerBill
|
24fce21d90
|
Add "naked" calling convention (removes prologue and epilogue)
|
2021-04-28 10:49:30 +01:00 |
|
gingerBill
|
2691c394e0
|
Add intrinsics.count_zeros
|
2021-04-25 20:50:25 +01:00 |
|
gingerBill
|
7086b49ae6
|
Rename intrinsics to count_trailing_zeros and count_leading_zeros
|
2021-04-25 20:26:11 +01:00 |
|
gingerBill
|
72aa0e6e38
|
Replace many foreign llvm calls with intrinsics
|
2021-04-25 20:22:26 +01:00 |
|
gingerBill
|
66a70b9d27
|
Remove the need for LLVM_BACKEND_SUPPORT
|
2021-04-25 19:49:29 +01:00 |
|
gingerBill
|
c29b643a58
|
Move out some intrinsics into separate procedures in llvm_backend.cpp; Rename InlineRangeStmt to UnrollRangeStmt (eventually merge the two AST nodes)
|
2021-04-24 15:00:01 +01:00 |
|
gingerBill
|
896057b5a7
|
Reuse unused 'context' variables to minimize stack usage (-llvm-api)
|
2021-04-22 16:56:02 +01:00 |
|
gingerBill
|
b68b090f13
|
Add intrinsics: overflow_add, overflow_sub, overflow_mul; Change byte swap behaviour in -llvm-api to be the same as the intrinsic
|
2021-04-22 11:33:46 +01:00 |
|
gingerBill
|
9adec628c1
|
Add @(cold) attribute to procedure declarations
|
2021-04-14 17:15:28 +01:00 |
|
gingerBill
|
2ec3326653
|
Support #soa array iteration in a for in loop for -llvm-api backend only
|
2021-03-24 14:31:44 +00:00 |
|
gingerBill
|
0355908af8
|
Start work on very basic LLVM debug type information
|
2021-03-22 13:09:23 +00:00 |
|
gingerBill
|
fd7d70954e
|
Begin integrating work from branch llvm-debug-symbols
|
2021-03-20 13:10:53 +00:00 |
|
gingerBill
|
178e891c78
|
Fix some LLVM asserts by using LLVMConstNamedStruct everywhere
|
2021-03-19 15:47:10 +00:00 |
|
gingerBill
|
572b9d1b3f
|
Fix context bug with deferred_* attributes which caused a new context to be created every time
|
2021-03-06 16:11:01 +00:00 |
|
gingerBill
|
75f127af7c
|
Add -vet-extra (checks for unneeded casts and transmutes)
|
2021-03-03 14:17:48 +00:00 |
|
gingerBill
|
4f298a5314
|
Fix LLVM -opt:2 bug for initializing global variables
|
2021-02-27 15:54:22 +00:00 |
|
gingerBill
|
2d88c6c6a5
|
Begin work on aarch64 ABI for -llvm-api
|
2021-02-24 16:49:19 +00:00 |
|
gingerBill
|
efdee0dafb
|
Remove bit_field type from Odin (keyword and dead runtime code still exists)
|
2021-02-19 11:31:14 +00:00 |
|
gingerBill
|
7fbc081119
|
Improve const hash
|
2020-11-29 16:03:21 +00:00 |
|
gingerBill
|
97c66c9c73
|
Add intrinsics.type_hasher_proc; Make map work with generic hasher procedure
|
2020-11-29 15:27:53 +00:00 |
|
gingerBill
|
39bed567b3
|
Add intrinsics.type_equal_proc; Make map use an internal equal procedure to compare keys
|
2020-11-29 14:22:42 +00:00 |
|
gingerBill
|
dbaf4d24f6
|
Update package json for new map layout; Correct llvm-api includes for *nix
|
2020-11-25 16:19:56 +00:00 |
|
gingerBill
|
9e42cb1595
|
Add comparisons to structs where all fields are comparable == and !=
|
2020-11-23 12:20:04 +00:00 |
|
gingerBill
|
a2461bdf6b
|
Modify llvm_abi.cpp to work correctly for win64 abi of i128 types. (it's a pain)
|
2020-11-22 21:38:45 +00:00 |
|
gingerBill
|
70b8b3c7dd
|
Update LLVM backend to begin work on a generic ABI system
|
2020-11-12 00:43:49 +00:00 |
|
gingerBill
|
ee3b3fe6a3
|
Fix typeid_of bug
|
2020-11-10 14:48:57 +00:00 |
|
gingerBill
|
609af3a651
|
Fix and clean up default procedure parameter code for non-constant types
|
2020-09-22 12:06:05 +01:00 |
|
gingerBill
|
0cd681e6b7
|
Expose runtime._startup_runtime to allow for freestanding targets in the future
|
2020-09-15 10:51:51 +01:00 |
|
gingerBill
|
9da1347c21
|
Fix Source_Code_Location error for *_insert_dynamic_map_key_and_value procedures
|
2020-07-08 22:57:39 +01:00 |
|
gingerBill
|
c3ebc49ad2
|
Fix @static slice for LLVM C API backend
|
2020-06-15 11:54:18 +01:00 |
|
gingerBill
|
9b1cc6e94f
|
Update logic for slice literals, backing array to be on the stack if possible (LLVM C API)
|
2020-06-08 12:41:42 +01:00 |
|
gingerBill
|
37a3abdaaa
|
Fix calling convention stuff with LLVM C API
|
2020-06-03 21:23: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 |
|
gingerBill
|
e1bdaa981a
|
Relative pointer and relative slices
|
2020-05-15 18:45:24 +01:00 |
|
gingerBill
|
ff92eb9112
|
Relative pointers
|
2020-05-15 17:37:00 +01:00 |
|
gingerBill
|
e27f5796d6
|
Add experimental atom op tables for llvm-backend
|
2020-05-02 18:45:57 +01:00 |
|
gingerBill
|
f09b6a4c90
|
Simplify compiler's Map and create a StringMap specifically for strings
|
2020-04-13 13:02:30 +01:00 |
|
gingerBill
|
b21993a1c4
|
Allow ability to reference compound literals like C99 for -llvm-api
|
2020-03-26 17:33:54 +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
|
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 |
|