gingerBill
|
db6bd9b358
|
Allow sysv and win64 calling conventions to be used on any platform on amd64
|
2022-02-16 16:03:49 +00:00 |
|
gingerBill
|
0cc40db565
|
Begin work on support objc intrinsics
|
2022-02-08 17:04:55 +00:00 |
|
gingerBill
|
eac74631ec
|
Correct debug information logic for procedure parameters
|
2022-02-01 14:11:19 +00:00 |
|
gingerBill
|
9ecbadd457
|
Simplify procedure parameters callee logic
|
2022-01-15 16:16:11 +00:00 |
|
gingerBill
|
79f32d7b71
|
Remove unused lbDefer kind
|
2022-01-15 16:03:37 +00:00 |
|
gingerBill
|
23f0fbc376
|
Improve matrix->matrix casting implementation
|
2021-11-08 11:40:41 +00:00 |
|
gingerBill
|
3d3785a7f1
|
Remove many LLVM optimization passes which were causes UB due to them assuming C-like behaviour incompatible with Odin
|
2021-11-06 17:23:33 +00:00 |
|
gingerBill
|
6be104e521
|
Make llvm backend code use PtrMap; remove dead code
|
2021-11-05 16:43:53 +00:00 |
|
gingerBill
|
6ded538546
|
@(linkage=<string>) for procedures and variables; @(require) for procedures; package runtime linkage improvements; Subsequence improvements to lb_run_remove_unused_function_pass
|
2021-11-04 12:40:50 +00:00 |
|
gingerBill
|
8ef6f9dd7b
|
Compile wasm64; Add lb_run_remove_unused_function_pass
|
2021-10-31 00:11:38 +01:00 |
|
gingerBill
|
7d715fe113
|
Add ODIN_LLVM_MINIMUM_VERSION_12
|
2021-10-25 16:05:22 +01:00 |
|
gingerBill
|
a440d8d812
|
Improve use of vector muladd operations
|
2021-10-25 13:10:56 +01:00 |
|
gingerBill
|
82b6772ea4
|
Support matrix literals
|
2021-10-20 00:40:03 +01:00 |
|
gingerBill
|
662cbaf425
|
Support indexing matrices
|
2021-10-19 12:13:19 +01:00 |
|
gingerBill
|
ba331024af
|
Very basic matrix support in backend
|
2021-10-18 18:16:52 +01:00 |
|
gingerBill
|
00671a59a0
|
Minor code cleanup for backend; add struct_fields_index_by_increasing_offset for future use
|
2021-10-02 17:22:56 +01:00 |
|
gingerBill
|
ebca0398a7
|
Remove need for alignment lb_struct_has_padding_prefix
|
2021-10-02 16:06:42 +01:00 |
|
gingerBill
|
444fedd8d4
|
Heavily improve the LLVM struct type generation to improve ABI
|
2021-10-02 15:45:46 +01:00 |
|
gingerBill
|
8de728e3dc
|
LLVM Code Generator: Add explicitly padding between fields in LLVM struct types
|
2021-09-13 16:40:24 +01:00 |
|
gingerBill
|
df372dbd5b
|
Migrate and remove more from gb.h
|
2021-08-19 15:38:21 +01:00 |
|
gingerBill
|
01f431b01f
|
Unify semantics of the built-in swizzle procedure with the selector expression semantics e.g. .xyz
|
2021-08-09 19:37:58 +01:00 |
|
gingerBill
|
40822be595
|
Reorganize llvm_backend.cpp into separate files for easier maintenance
|
2021-08-07 12:01:48 +01:00 |
|
gingerBill
|
b036cc9013
|
Add missing_procedures_to_check to lbModule
|
2021-08-03 14:13:38 +01:00 |
|
gingerBill
|
d4df325e0a
|
Just create context when required
|
2021-06-14 11:41:50 +01:00 |
|
gingerBill
|
582f423b67
|
Improve vector arithmetic generation for array programming operations
|
2021-06-12 16:37:20 +01:00 |
|
gingerBill
|
599d18f26f
|
Experimental support for inline swizzling for array types of len <= 4 e.g. v.xyz, v.argb, v.xxx
|
2021-06-05 17:22:39 +01:00 |
|
gingerBill
|
d35a9e65b6
|
Heavily improve the copy elision logic in the backend
|
2021-05-24 20:57:44 +01:00 |
|
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 |
|