Commit Graph

529 Commits

Author SHA1 Message Date
gingerBill
402a165b60 Correct missing procedures in other build modules which cause a linkage problem 2023-01-12 16:59:16 +00:00
gingerBill
9b47a5eddb Fix macro issue 2023-01-11 00:49:04 +00:00
gingerBill
8ef406324b Multi thread more of the backend where possible 2023-01-05 17:26:51 +00:00
gingerBill
23d0c52bf4 Refactor llvm backend code into separate procedures to make it simpler to profile 2023-01-05 16:42:02 +00:00
gingerBill
5eee8077dd enum-ifiy function pass managers for lbModule 2023-01-05 15:56:45 +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
025e87d974 Multithread LLVM procedure generation 2023-01-05 12:39:57 +00:00
gingerBill
213a0499a1 Begin multithreading the llvm backend when -use-separate-modules is enabled 2023-01-05 12:29:16 +00:00
gingerBill
1517f1d779 Add uncomment add_type_info_type calls for type assertions 2023-01-05 11:54:21 +00:00
gingerBill
69934c3b0b More for_array(i, y) to for (x : y) translations 2023-01-03 13:04:09 +00:00
gingerBill
529383f5b1 Correct a race condition when checking the procedure body 2023-01-02 15:30:04 +00:00
gingerBill
bfdcf900ef Remove global_ prefix from global_thread_pool_* procedures 2023-01-02 00:56:06 +00:00
gingerBill
44caa96d50 Set the file's filename and directory in init_ast_file 2022-12-20 14:56:44 +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
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