gingerBill
6cdec65ca1
gb_internal LLVM backend
2022-12-18 22:32:05 +00:00
gingerBill
1f8f94276e
Initialize the multiple return value map in lb_create_dummy_procedure
2022-12-07 16:44:26 +00:00
gingerBill
d88b052d2d
Naïve optimization of named _split_ multiple return valued when defer is never used
...
This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables
are not allocated to represent the named return values by using that specific memory.
In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not,
or is ever passed to a nested procedure call (e.g. possibly escapes).
2022-11-25 23:57:55 +00:00
gingerBill
615eccb6d1
Correct return ptr semantics for split returns
2022-11-24 14:26:45 +00:00
gingerBill
0befadde1d
Basic copy elision support for multiple return values
2022-11-24 01:27:39 +00:00
gingerBill
aef8b25a8e
Listen to past Bill's wisdom
2022-11-23 23:54:12 +00:00
gingerBill
7ab591667a
Basic support for new ABI experiment on Win64
2022-11-23 16:25:09 +00:00
gingerBill
0a0db23b17
Remove copy elision code
2022-11-22 15:49:27 +00:00
gingerBill
1baa47c78e
Fix #2179
2022-11-21 11:31:35 +00:00
gingerBill
5bbab05161
Fix #2199
2022-11-21 11:02:52 +00:00
gingerBill
25bec19b1f
Revert "Minor improvement to multi return value reducing stack usage"
2022-11-13 23:56:05 +00:00
gingerBill
d2019e3e4d
Enforce pointer cast
2022-11-13 23:50:45 +00:00
gingerBill
a705a2e38b
Minor improvement to multi return value reducing stack usage
2022-11-13 22:55:32 +00:00
gingerBill
2b83f27f06
Merge branch 'master' into map-dev
2022-11-11 15:54:33 +00:00
gingerBill
fcd8860990
Make intrinsics.ptr_sub use explicit integer arithmetic internally
2022-11-11 15:52:49 +00:00
gingerBill
8852d090b6
Correct static map get; make get take a pointer to simplify compiler internals
2022-11-10 12:46:53 +00:00
gingerBill
a74093784c
Add intrinsics.map_cell_info and intrinsics.map_info
2022-11-08 12:24:00 +00:00
gingerBill
ed58374964
Make Map_Info store pointers to cell info rather than inline
2022-11-08 12:18:36 +00:00
gingerBill
c39ef1b25c
Ad-hoc pass source code location directly by pointer without stack copy
2022-10-31 00:25:53 +00:00
gingerBill
9da37ed394
Optimize #caller_location and #location to use read only data section where possible
2022-10-31 00:04:15 +00:00
gingerBill
8fa571c283
Use direct parameter value in lb_find_ident when possible
2022-10-30 22:58:44 +00:00
gingerBill
6a14c3edb4
Make raw_data an intrinsic rather a @(builtin) runtime procedure
2022-10-30 22:05:29 +00:00
gingerBill
419eab5059
Force call site attributes for procedures (relating to #2121 causing ABI issues for intrinsics.objc_send)
2022-10-10 21:48:56 +01:00
gingerBill
831620bfc4
Remove header cache code
2022-09-21 13:06:02 +01:00
gingerBill
ff97a73152
Reduce unnecessary map gets
2022-09-21 13:03:13 +01:00
gingerBill
4d512c2cf6
Correct lb_gen_map_header initialization
2022-09-17 13:40:29 +01:00
gingerBill
0ebc2add03
Use a cache when generating the map header to minimize stack wastage
2022-09-17 12:56:03 +01:00
gingerBill
98eaf5c6c0
Fix #2054 Differing behaviours with defer statements for single vs multiple return values caused by naïve ABI optimization
2022-09-17 10:20:04 +01:00
gingerBill
6910182011
Fix debug generation for named results
2022-09-12 14:12:31 +01:00
gingerBill
fbbfe438dc
Improve debug info to named return values
2022-09-12 13:08:05 +01:00
gingerBill
913e8b2e02
Unify debug parameter code
2022-09-10 10:03:51 +01:00
gingerBill
623d687192
Split debug info generation for direct and indirect parameters
2022-09-09 23:07:09 +01:00
gingerBill
d325c36eb8
Fix procedure pointer cast
2022-09-07 11:14:59 +01:00
gingerBill
ed73441a4c
Fix code generation related to Objective-C related x->y() calls
2022-09-01 15:11:53 +01:00
gingerBill
82e840a0ca
EXPERIMENTAL intrinsics.valgrind_client_request
2022-08-17 13:52:13 +01:00
gingerBill
f2908cbc5a
Remove debug crap with inlining
2022-08-16 16:36:13 +01:00
gingerBill
5337b0b471
Revert "Remove debug message"
...
This reverts commit 22d16c20f8 .
Revert "Correct global constant procedure initialization"
This reverts commit 697c839c84 .
Revert "Clean up how procedures are typed in LLVM's dumb type system"
This reverts commit de8bd88d2a .
2022-08-16 16:16:36 +01:00
gingerBill
8e7c7eeeba
Fix lb_emit_ptr_offset
2022-08-12 13:48:10 +01:00
gingerBill
de8bd88d2a
Clean up how procedures are typed in LLVM's dumb type system
2022-08-12 11:15:12 +01:00
gingerBill
cb0a59bb2c
Eliminate use of LLVMGetElementType for pointers
2022-08-09 15:36:18 +01:00
Christoffer Lerno
9c0a3b6c60
Removed use of deprecated functions. Cleaned up most deprecated use of LLVMGetElementType.
2022-08-07 19:26:28 +02:00
gingerBill
a58e4d0359
Allow for foo() or_else unreachable() and other diverging procedures
2022-08-05 12:19:57 +01:00
gingerBill
576914aee1
Make unreachable() a built-in compiler-level procedure
2022-08-05 11:57:33 +01:00
gingerBill
d492fb3501
Fix and improve x->y() behaviour to minimize duplicate evaluation
2022-07-24 12:39:59 +01:00
gingerBill
6c7e5748a8
Integrate numerous debug fixes from #1877
2022-07-18 12:49:29 +01:00
gingerBill
041625381c
Fix #1888
2022-07-16 17:36:03 +01:00
gingerBill
516f6647b4
Fix intrinsics.non_temporal_{load, store}
2022-05-31 11:00:41 +01:00
gingerBill
a0babefe55
Fix lb_build_builtin_simd_proc
2022-05-30 15:13:45 +01:00
gingerBill
f3aefbc443
@(require_target_feature=<string>) @(enable_target_feature=<string>)
...
require_target_feature - required by the target micro-architecture
enable_target_feature - will be enabled for the specified procedure only
2022-05-30 14:53:12 +01:00
gingerBill
cef022539e
Rename to lanes_rotate_left, lanes_rotate_right, lanes_reverse
2022-05-29 15:13:14 +01:00