gingerBill
6cdec65ca1
gb_internal LLVM backend
2022-12-18 22:32:05 +00:00
gingerBill
ff6b76986a
Use C++11 loops for some arrays
2022-12-09 12:32:54 +00:00
gingerBill
5c3624eb86
Fix map looping
2022-12-09 12:18:49 +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
0a0db23b17
Remove copy elision code
2022-11-22 15:49:27 +00:00
gingerBill
d2019e3e4d
Enforce pointer cast
2022-11-13 23:50:45 +00:00
gingerBill
3edb3d8d8c
Simplify the handling of the hashing calls for maps
2022-11-13 23:24:08 +00:00
gingerBill
22840ddf97
Add noinline LLVM attribute to static map procedures
2022-11-11 15:35:05 +00:00
gingerBill
f9576c2f5b
Add internal linkage to static map calls
2022-11-11 15:28:20 +00:00
gingerBill
16fc961010
Begin work on map static set
2022-11-11 14:45:22 +00:00
gingerBill
d2701d8b13
Make __dynamic_map_set take the hash rather than compute it internally
2022-11-11 13:04:38 +00:00
gingerBill
a0bd31646b
Make map get internal calls take the hash value rather than compute it internally
2022-11-11 13:02:23 +00:00
gingerBill
0d37da54b4
Add minor optimization for lb_map_cell_index_static
2022-11-11 11:41:28 +00:00
gingerBill
033525fe13
Force inline of hasher proc where possible
2022-11-11 11:10:26 +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
1bcec3f769
Change map internal calls to use a pointer
2022-11-09 22:21:36 +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
046dd55032
Change __dynamic_map_get signature
2022-11-08 13:02:32 +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
3b583cbac7
Add debug symbols for global constants of integers, bools, enums, runes, & pointers.
...
Variables are namespaced with `pkg::name` or `name` if built-in or the initial package for convenience.
2022-11-02 00:05:51 +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
0dce7769f4
Clean up private internal constant global handling
2022-09-22 00:18:03 +01:00
gingerBill
8c3f01fbfa
Correct parapoly determination of generated internal type of a map
2022-09-22 00:05:11 +01:00
gingerBill
9b9aa9c353
Remove more dead code for map header stuff
2022-09-21 13:08:40 +01:00
gingerBill
831620bfc4
Remove header cache code
2022-09-21 13:06:02 +01:00
gingerBill
4f50988799
Remove debug code
2022-09-21 13:03:30 +01:00
gingerBill
ff97a73152
Reduce unnecessary map gets
2022-09-21 13:03:13 +01:00
gingerBill
1d793ea338
Split header table data and the map pointer
2022-09-21 12:09:05 +01:00
gingerBill
5337413c56
Temporary patch for lb_gen_map_header
2022-09-21 11:36:14 +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
117d32dfc4
Enforce constant pointer cast on global procedure variable initialization x := proc() {}
2022-09-17 10:26:57 +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
d2097e9fdd
Add inline debug generation for assembly target flag ( #2028 )
2022-09-07 11:17:33 +01:00
Jeroen van Rijn
4b2246ba9f
Fix #1999
...
Tested on Windows and Linux.
2022-09-03 18:47:05 +02: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
22d16c20f8
Remove debug message
2022-08-12 12:29:32 +01:00
gingerBill
697c839c84
Correct global constant procedure initialization
2022-08-12 12:29:11 +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
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
e4743b15b1
Add @(priority_index=<int>) for foreign import
2022-05-04 16:40:12 +01:00
gingerBill
cec049b7d3
Make the link order of foreign imports deterministic
2022-05-04 16:04:26 +01:00
Jeroen van Rijn
3cab2592c3
Compiler: Add early error for output path being a directory.
...
- Introduce new `Path` type and an array of build paths on the build context.
- Resolve input and output paths/files early (before parsing).
- Error early if inputs are missing or outputs are directories.
- Plumb new file path generation into linker stage instead of its adhoc method.
TODO:
- Remove more adhoc file path generation in parser and linker stage.
- Make intermediate object file generation use new path system.
- Round out and robustify Path helper functions.
2022-04-24 13:37:26 +02:00