Commit Graph

54 Commits

Author SHA1 Message Date
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
gingerBill
8fcc6ca464 Add LLVM_USE_NO_EXTRA_PASSES build flag 2021-03-29 16:51:06 +01:00
gingerBill
faa0240900 Change how lb_populate_module_pass_manager handles the LLVMPassManagerBuilder calls 2021-03-29 16:40:39 +01:00