gingerBill
fa562ec5d6
Remove unneeded local_entity_map
2023-01-02 15:40:25 +00:00
gingerBill
529383f5b1
Correct a race condition when checking the procedure body
2023-01-02 15:30:04 +00:00
gingerBill
6cdec65ca1
gb_internal LLVM backend
2022-12-18 22:32:05 +00:00
gingerBill
34a048f7da
Replace compiler for loops for the hash-table types to simplify code usage
2022-12-09 11:29:28 +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
0befadde1d
Basic copy elision support for multiple return values
2022-11-24 01:27:39 +00:00
gingerBill
0a0db23b17
Remove copy elision code
2022-11-22 15:49:27 +00:00
gingerBill
81f83d5780
Fix prototype
2022-11-13 23:51:59 +00:00
gingerBill
16fc961010
Begin work on map static set
2022-11-11 14:45:22 +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
a71daee545
Allow for -use-static-map-calls which generates a get procedure per map; add runtime.map_get
2022-11-08 14:58:05 +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
da774e3fd2
General modifications
2022-11-08 00:38:31 +00:00
gingerBill
bce62b98d4
Basic fmt printing for map
2022-11-07 23:32:59 +00:00
gingerBill
c96e0afbf1
Begin work on implementing the new map internals
2022-11-07 23:02:21 +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
8fa571c283
Use direct parameter value in lb_find_ident when possible
2022-10-30 22:58:44 +00: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
0ebc2add03
Use a cache when generating the map header to minimize stack wastage
2022-09-17 12:56:03 +01:00
gingerBill
7840c1b89f
Change __dynamic_map_get and __dynamic_map_set to use separate parameters rather than take a singular struct
2022-09-17 12:48:12 +01:00
gingerBill
a3c04db828
Revert "Just get the value directly and store it in another global variable"
...
This reverts commit 190c3ab0cd .
2022-09-14 17:57:12 +01:00
gingerBill
190c3ab0cd
Just get the value directly and store it in another global variable
...
// global
x := &Foo{}
2022-09-14 17:50:31 +01:00
gingerBill
84f9fb706b
General clean up of LLVM*GEP2 code
2022-08-10 11:36:25 +01:00
gingerBill
812823cad8
Wrap all LLVMGetElementType uses
2022-08-09 21:17:32 +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
e6ab4f4856
Force memset instead of store zeroinitializer when the value is large
2022-07-24 20:22:50 +01:00
gingerBill
d492fb3501
Fix and improve x->y() behaviour to minimize duplicate evaluation
2022-07-24 12:39:59 +01:00
gingerBill
041625381c
Fix #1888
2022-07-16 17:36:03 +01:00
gingerBill
5187db525f
Minor style change
2022-06-12 17:17:59 +01:00
gingerBill
a8bd340267
Merge pull request #1395 from hdooley/master
...
factor out alloca generation into a helper
2022-06-12 17:17:12 +01:00
gingerBill
cec049b7d3
Make the link order of foreign imports deterministic
2022-05-04 16:04:26 +01:00
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
Henry Dooley
069c05669f
cast isize to unsigned int for llvm api, add defaulted name parameter to helper.
2021-12-25 16:46:02 -06:00
Henry Dooley
516065d7c2
factor out alloca generation into a helper
2021-12-25 16:28:09 -06: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