Commit Graph

292 Commits

Author SHA1 Message Date
gingerBill
579b317be8 Mark external thread local globals 2021-05-05 11:47:47 +01:00
gingerBill
08360e2337 Minor cleanup 2021-05-05 10:56:19 +01:00
gingerBill
94570a24c1 Move anonymous proc generation into lbGenerator 2021-05-04 00:56:29 +01:00
gingerBill
17001bf38c Nearly approach full functionality for -use-separate-modules coupled with multithreading 2021-05-04 00:45:09 +01:00
gingerBill
b83e67f45f Get LLVM backend multithread for object generation with -use-separate-modules 2021-05-04 00:06:20 +01:00
gingerBill
a5eea97edb Prepare to multithread object generation 2021-05-03 20:45:27 +01:00
gingerBill
5d70289b69 Remove test code 2021-05-03 20:03:37 +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
d027a5f1a4 Add min_f16 and max_f16 dependencies 2021-05-03 18:48:48 +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
e4286d0ff9 Force zero_init in lb_add_local in certain cases 2021-05-03 15:57:35 +01:00
gingerBill
b44a56118e Begin cleanup for allowing for multiple LLVM modules 2021-05-03 15:26:40 +01:00
gingerBill
0d044eabac Remove non-InContext type creations 2021-05-03 15:00:50 +01:00
gingerBill
3a5245dcce Make sure builder uses the InContext version 2021-05-03 14:36:27 +01:00
gingerBill
357f66fcee Fix typo 2021-05-03 13:45:17 +01:00
gingerBill
050f128554 Correct hashing for union #maybe 2021-05-03 13:40:36 +01:00
gingerBill
1a3784c4df Allow unions which are comparable to also be valid map keys (i.e. hashable) 2021-05-03 13:38:15 +01:00
gingerBill
518ecaf9c9 Allow unions to be comparable if all their variants are comparable 2021-05-03 13:17:16 +01:00
gingerBill
406d2ab6ba Simplify/Fix the state_flag behaviour for code generation 2021-05-01 17:42:59 +01:00
gingerBill
e50ef33c2a Fix #921 2021-04-28 12:34:16 +01:00
gingerBill
24fce21d90 Add "naked" calling convention (removes prologue and epilogue) 2021-04-28 10:49:30 +01:00
gingerBill
afe185ee22 Fix procedure entity finding 2021-04-27 21:08:18 +01:00
gingerBill
24f2d97c0e Make atomic compare related intrinsics optional ok 2021-04-27 16:55:39 +01:00
gingerBill
e7e1866e50 Fix #893 2021-04-27 13:09:37 +01:00
gingerBill
04535b2913 Fix constant aliasing for debug information 2021-04-26 22:36:20 +01:00
gingerBill
43b55223af Merge branch 'master' into old-backend-removal 2021-04-26 11:46:58 +01:00
gingerBill
aa846d0ea5 Fix union #maybe comparison against nil -llvm-api 2021-04-26 11:46:26 +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
6383714bff Remove old procedure ABI code 2021-04-25 19:56:46 +01:00
gingerBill
ff620422fa Fix #857 2021-04-25 19:40:02 +01:00
gingerBill
5685a8d885 Fix #911 for -llvm-api backend 2021-04-25 19:19:44 +01:00
gingerBill
2b4010998d Up ci.yml 2021-04-24 20:55:50 +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
ac53577e9b Improve auto_cast logic 2021-04-22 17:29:48 +01:00
gingerBill
896057b5a7 Reuse unused 'context' variables to minimize stack usage (-llvm-api) 2021-04-22 16:56:02 +01:00
gingerBill
01db195b47 Make main calling convention "odin" rather than "contextless" to simplify code generation 2021-04-22 16:26:28 +01:00
gingerBill
8a86c4c7cc Remove old code 2021-04-22 14:24:30 +01:00
gingerBill
1c9f48031d Change function pass manager passes 2021-04-22 13:54:26 +01:00
gingerBill
7fcd5ecbd5 Change how lb_populate_function_pass_manager works by using the default LLVM passes when not using minimal optimizations 2021-04-22 12:35:01 +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
542098dc6f Add intrinsics: byte_swap (integers and floats); count_ones; trailing_zeros; reverse_bits 2021-04-22 11:06:16 +01:00
gingerBill
0a66f8c9a3 Remove intrinsics.x86_mmx type 2021-04-22 10:39:20 +01:00
gingerBill
47c7dc6a9b Add new intrinsics: debug_trap, trap, read_cycle_counter, expect 2021-04-22 10:35:17 +01:00
gingerBill
65551ba8fb Add optimization_mode attribute for procedures
Allowed modes: "none", "minimal", "size", "speed"
Currently: none == minimal and size == speed
2021-04-22 00:04:47 +01:00
gingerBill
2fb0383e82 Add -build-mode:llvm-ir for -llvm-api backend 2021-04-21 23:25:08 +01:00
gingerBill
2f1c896290 Add -doc-format command for the new .odin-doc file format (to be used to generate documentation tools) 2021-04-18 18:33:15 +01:00
gingerBill
3a4373641b Correct call site attributes 2021-04-14 17:16:10 +01:00