Commit Graph

56 Commits

Author SHA1 Message Date
gingerBill
fe040d1bbd Propagate @(link_section=<string>) to nested declarations 2025-04-08 11:36:53 +01:00
Laytan Laats
f6488383d7 fix instrumentation features on LLVM versions with typed pointers
Fixes #3970
2024-07-24 02:43:53 +02:00
Laytan Laats
65ca03a930 make instrumentation "work" on wasm
Using instrumentation on WASM causes it to complain about the
llvm.returnaddress instrinsic. This PR could be considered a "hack" but
makes this work by just passing `nil` instead of the return address.
2024-07-11 01:57:00 +02:00
Laytan
0e6dd56ac1 fix instrumentation in debug mode 2024-02-08 22:29:45 +01:00
gingerBill
67dcd916e8 Update instrumentation signature to support runtime.Source_Code_Location as last parameter. 2024-01-09 11:01:18 +00:00
gingerBill
f4782157d3 Implement instrumentation pass 2024-01-07 21:34:44 +00:00
gingerBill
b7af4e7f6b Explicitly write out the passes for each level and remove certain passes 2023-10-30 12:31:24 +00:00
gingerBill
082324d7b9 Begin work on making the type info table be constantly initialized 2023-09-22 14:39:51 +01:00
gingerBill
96fbafe359 Update ABI breaking changes for f16 types (due to LLVM 15+) 2023-09-21 10:38:44 +01:00
gingerBill
e82b0ea4cd Add -o:aggressive for LLVM 17 2023-09-21 09:48:53 +01:00
gingerBill
5043c10d70 Check for LLVM versions 2023-09-19 16:21:34 +01:00
gingerBill
e748d2f2af Update to LLVM-17 2023-09-19 16:15:26 +01:00
gingerBill
589820639c Correct lb_run_function_pass_manager behaviour 2023-08-10 14:35:09 +01:00
gingerBill
1ff6212ffa Always call lb_run_remove_dead_instruction_pass to fix -debug issues 2023-07-07 22:28:31 +01:00
gingerBill
3ab01dbc00 Fix type switch debug information on -o:none 2023-05-30 00:05:52 +01:00
gingerBill
7c0257fcda Fix value elision on declaration 2023-03-09 15:39:41 +00:00
gingerBill
085db569f1 Add -o:none optimization mode (useful for -debug builds) 2023-03-07 15:31:55 +00:00
gingerBill
029cb6581b Unify function pass managers for auxiliary procedures (e.g. startup type info, runtime, objc names) 2023-01-05 12:54:53 +00:00
gingerBill
c1f5be24e2 Remove dead code in the compiler 2022-12-18 22:49:10 +00:00
gingerBill
6cdec65ca1 gb_internal LLVM backend 2022-12-18 22:32:05 +00:00
gingerBill
4c3281b3f2 Disallow Early CSE on -debug builds 2022-08-09 18:09:26 +01:00
Astavie
b13dad02a4 fix require flag on higher optimization modes 2022-06-15 21:30:29 +02:00
gingerBill
0738822dda Change how parameter and variables are given debug values 2022-02-16 13:25:31 +00:00
gingerBill
51dcbc80c3 Add LLVMAddMergedLoadStoreMotionPass on -debug -opt:0 2022-01-15 16:26:14 +00:00
gingerBill
08a081ed45 Improve debug symbol retention with -debug -opt:0 2021-12-11 17:42:58 +00:00
gingerBill
dc2edd3e79 Improve support for freestanding_wasm32 2021-11-07 16:19:27 +00:00
gingerBill
40eed29527 Remove LLVMAddDeadStoreEliminationPass pass 2021-11-06 18:11:29 +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
5df15b5724 Completely ignore LLVM_ADD_CONSTANT_VALUE_PASS LLVM >= 12 2021-11-06 16:29:53 +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
5f51337a01 Add procs for wasm32 2021-10-31 19:00:01 +00:00
gingerBill
2a5b8f53fe Add memmove and memset support for wasm 2021-10-31 12:47:50 +00:00
gingerBill
8ef6f9dd7b Compile wasm64; Add lb_run_remove_unused_function_pass 2021-10-31 00:11:38 +01:00
gingerBill
9e018b642e Fix typo 2021-09-11 17:32:06 +01:00
gingerBill
e3359a2639 Prepare for LLVM 12.0.1 compatibility 2021-09-11 16:53:18 +01:00
gingerBill
b1cfeb6c95 Add missing instruction to pass 2021-05-15 22:14:20 +01:00
gingerBill
fffb83282b Add missing instructions to pass 2021-05-15 21:24:17 +01:00
gingerBill
1cf6b6679d Add custom basic dead instruction elimination pass 2021-05-15 21:10:06 +01:00
gingerBill
eac61fb536 Remove LLVMAddLowerConstantIntrinsicsPass 2021-05-11 12:17:48 +01:00
gingerBill
8bb6651dda Remove test call for LLVM 2021-05-11 12:08:09 +01:00
gingerBill
8ff80dec58 Minor change (in preparation for something else) to opt passes 2021-05-11 12:00:55 +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
9adec628c1 Add @(cold) attribute to procedure declarations 2021-04-14 17:15:28 +01:00
gingerBill
46c5c7d1ec Experiment with different opt passes 2021-04-01 23:41:01 +01:00
gingerBill
491b282615 Add extra optimization level pass -opt:2 in lb_populate_module_pass_manager 2021-04-01 10:31:46 +01:00
gingerBill
439e2c9242 Fix shifting limits and LLVM code gen bug relating to shifts 2021-03-29 23:15:31 +01:00
gingerBill
6fb0868517 Remove dead code and comments 2021-03-29 22:45:36 +01:00
gingerBill
e1588c9322 Remove LLVMPassManagerBuilder usage in lb_populate_module_pass_manager; simplify lb_populate_function_pass_manager 2021-03-29 22:04:54 +01:00