Commit Graph
100 Commits
Author SHA1 Message Date
gingerBill b470ceb470 Correct mpsc_dequeue 2023-01-12 12:59:09 +00:00
gingerBill c15db05199 Implement MPSCQueue 2023-01-12 12:41:53 +00:00
gingerBill 9428f792ed Comment out allocator guards for the time being 2023-01-12 01:09:36 +00:00
gingerBill 520ff731de Add ArenaTemp to the compiler 2023-01-12 00:47:20 +00:00
gingerBill e9cfe698ba Make the heap_allocator just be the permanent_allocator
This improves the speed of the compiler with very little memory increase (which surprised me, Ginger Bill)
2023-01-12 00:20:25 +00:00
gingerBill 5fa66ac6a8 Fix random race condition for poly records 2023-01-12 00:18:58 +00:00
gingerBill d7d6608142 Remove unneeded CI stage 2023-01-11 22:08:25 +00:00
gingerBill 7f2ef2ac67 Move check for type info above 2023-01-11 21:52:04 +00:00
gingerBill 7124d541a1 General optimizations 2023-01-11 18:10:27 +00:00
gingerBill 3c7e45a46f Remove possible race condition in type_size_of/type_align_of 2023-01-11 17:45:18 +00:00
gingerBill 6ec014e980 Make -threaded-checker the default not (opt out with -no-threaded-checker) 2023-01-11 17:27:06 +00:00
gingerBill 9b47a5eddb Fix macro issue 2023-01-11 00:49:04 +00:00
gingerBill 3e8c63ad31 Add Odin check -threaded-checker test for windows 2023-01-10 20:46:00 +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 bbb2164e38 Inline map gets; cast explicitly on TOMBSTONE checking 2023-01-05 01:25:37 +00:00
gingerBill be23d83fc8 Remove unnecessary check is align_formula* et al 2023-01-05 00:47:09 +00:00
gingerBill 291ea33939 Initialize TypePath constructor like to keep the Futex constructor happy 2023-01-04 22:34:59 +00:00
gingerBill 9455918eec Fix min dep type info problem caused by const ref of map_set 2023-01-04 22:20:18 +00:00
gingerBill 8a99b8af3e Narrow mutex usage 2023-01-04 15:55:10 +00:00
gingerBill 12e42d92d3 Localize GenProcsData to the entity itself 2023-01-04 15:35:24 +00:00
gingerBill faa735d0c7 Localize gen_types mutexes 2023-01-04 15:15:12 +00:00
gingerBill d4e18109da Move walking of dependencies for procedures to just before calculating the min dep set 2023-01-04 13:52:38 +00:00
gingerBill d06a0e7093 Improve the PtrSet to be as simple and small as possible 2023-01-04 13:30:27 +00:00
gingerBill b3a55b8b6f Remove unused procedures 2023-01-03 18:42:13 +00:00
gingerBill ec69101101 Convert minimum_dependency_type_info_set to use a PtrMap 2023-01-03 18:39:37 +00:00
gingerBill 17fa8cb6ef Add extra mutex to TypePth just in case 2023-01-03 18:21:42 +00:00
gingerBill 855ebceadc Minimize add_type_info_type usage 2023-01-03 17:26:05 +00:00
gingerBill 2720e98127 Add +ignore along with +build ignore 2023-01-03 17:25:51 +00:00
gingerBill bb80c1b059 Add type_and_value_mutex to DeclInfo 2023-01-03 17:07:53 +00:00
gingerBill 85e390deba Minimize calling of Ast::thread_safe_file() when cloning 2023-01-03 15:57:09 +00:00
gingerBill dc317c8cd8 Make BlockingMutex 2023-01-03 15:50:31 +00:00
gingerBill 774fea1e63 Use RwMutex for gen_procs 2023-01-03 15:47:25 +00:00
gingerBill 485c606672 Clarify RwLocks for add_dependenies_from_unpacking 2023-01-03 15:37:35 +00:00
gingerBill 3dee3205b2 Use RwMutex for DeclInfo `deps 2023-01-03 15:34:52 +00:00
gingerBill c7a704d345 Use RwMutex for the Scope 2023-01-03 15:26:47 +00:00
gingerBill 0fb3032b73 General improves to alloc_ast_node and other unnecessary checks 2023-01-03 14:45:09 +00:00
gingerBill 69934c3b0b More for_array(i, y) to for (x : y) translations 2023-01-03 13:04:09 +00:00
gingerBill 7380b7e61b Add more uses of C++ style for loops over for_array macro 2023-01-03 12:37:41 +00:00
gingerBill 747a11a954 Allow all set entry types to be implicitly cast to their key/value type to allow for easier iteration 2023-01-03 12:18:35 +00:00
gingerBill 252be0fb41 Make all maps use heap allocator implicitly 2023-01-03 11:59:52 +00:00
gingerBill 600f2b7284 Use heap_allocator for all hash set types 2023-01-03 11:53:59 +00:00
gingerBill 670274ad8f More explicit uses of mutexes 2023-01-02 23:56:37 +00:00
gingerBill e10fe91eba Narrow global gen_procs_mutex further 2023-01-02 23:50:48 +00:00
gingerBill fd62ee14cd Code moving around 2023-01-02 23:31:38 +00:00
gingerBill 8ece92f1f6 Minimize the parapoly mutex usage a bit 2023-01-02 23:21:16 +00:00
gingerBill 69b075782b Use a package local mutex for add_type_and_value 2023-01-02 22:40:28 +00:00
gingerBill 6bd3a9d422 Be very explicit where the gen_procs_mutex can be unlock 2023-01-02 22:23:49 +00:00
gingerBill bc9ee8e1a4 Remove loops within futex signals on Linux 2023-01-02 22:13:49 +00:00
gingerBill d36c3c2590 Re enable type_and_value_mutex 2023-01-02 22:06:05 +00:00
gingerBill 52b319dbfd Fix darwin's futex implementation in the compiler 2023-01-02 21:53:41 +00:00
gingerBill 318d92f9a8 Comment out type_and_value_mutex usage 2023-01-02 21:37:21 +00:00
gingerBill 7ffffeeccc Comment out many mutex guards in type_(size|align)_of_internal 2023-01-02 21:35:40 +00:00
gingerBill f16d8e77b3 Narrow fullpath_mutex usage 2023-01-02 20:55:49 +00:00
gingerBill 5b335bb88c Narrow g_type_mutex usage 2023-01-02 20:48:24 +00:00
gingerBill df2767311f Use mutex_try_lock in check_proc_info 2023-01-02 20:42:22 +00:00
gingerBill 09c26e6be0 Narrow type info mutex usage 2023-01-02 20:38:37 +00:00
gingerBill d2ec2d1606 Remove another use of a global mutex 2023-01-02 19:46:55 +00:00
gingerBill 0d87b2e8db Use local mutexes rather than a global one for the dependency insertion 2023-01-02 19:39:35 +00:00
gingerBill 1568971732 Fix pool running 2023-01-02 18:04:16 +00:00
gingerBill 0e040be941 Add define for darwin 2023-01-02 17:49:16 +00:00
gingerBill 9737b65d9c Explicitly call store for futex 2023-01-02 17:18:59 +00:00
gingerBill ad52003077 Remove some unneeded checks 2023-01-02 17:15:29 +00:00
gingerBill c386509112 Minor clean up of thread pool code 2023-01-02 17:06:29 +00:00
gingerBill c293f5b7eb Remove unneeded mutex 2023-01-02 16:56:05 +00:00
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 f01cff7ff0 Multithread checker 2023-01-02 12:31:00 +00:00
gingerBill 015fe924b8 Remove use of queues for procedure checking. 2023-01-02 12:28:38 +00:00
gingerBill a5ce8a8c0b Multi thread check_export_entities 2023-01-02 01:31:14 +00:00
gingerBill bfdcf900ef Remove global_ prefix from global_thread_pool_* procedures 2023-01-02 00:56:06 +00:00
gingerBill 54f89dd84b Multithread check_collect_entities_all using new thread pool 2023-01-02 00:53:11 +00:00
gingerBill da479c7628 Minor style change 2023-01-02 00:35:12 +00:00
gingerBill 3c90a05957 Replace condition+mutex with futex 2023-01-02 00:26:17 +00:00
gingerBill d16ddf7926 Use C++ style for loop over for_array macro in parser.cpp where posible 2023-01-01 16:32:51 +00:00
gingerBill 5c519f0e8d Remove the synchronization primitive init/destroy calls 2023-01-01 16:19:21 +00:00
gingerBill 74e6d9144e Get around the std::atomic issue 2023-01-01 16:15:35 +00:00
gingerBill 20d451396d Begin work on futex-ifying the threading primitives 2023-01-01 15:06:57 +00:00
gingerBill 60d0390ef8 Unify compiler Futex interface 2023-01-01 14:48:31 +00:00
gingerBill 00823ca88c Remove a few TODOs 2022-12-22 13:03:34 +00:00
gingerBill ffa14c3aad Remove need the MPMC in single threaded case 2022-12-22 12:58:23 +00:00
gingerBill 41b32f0da4 Clean up mutex usage in the parser 2022-12-22 12:45:23 +00:00
gingerBill c53b2198a8 Add minor comment 2022-12-22 12:02:14 +00:00
gingerBill 9b278db993 Revert "Change tav to be a pointer internally"
This reverts commit e98f1a28e6.
2022-12-22 12:01:41 +00:00
gingerBill e98f1a28e6 Change tav to be a pointer internally 2022-12-22 11:53:13 +00:00
gingerBill b9a2426e57 Merge branch 'master' into compiler-improvements-2022-12 2022-12-21 23:59:31 +00:00
gingerBill 81037b3091 Change the order of the args and ret for Arm64 ABI 2022-12-21 23:56:34 +00:00
gingerBill 3040361fac Correct type_ptr_set_update and type_ptr_set_exists 2022-12-20 14:59:00 +00:00
gingerBill 44caa96d50 Set the file's filename and directory in init_ast_file 2022-12-20 14:56:44 +00:00
gingerBill eb0775ad53 Move mutex use around in thread pool 2022-12-20 14:45:01 +00:00
gingerBill 8fc9566a83 Use *_set_update where possible 2022-12-20 14:19:55 +00:00
gingerBill 134c7db4d2 Combine join and destroy for threads 2022-12-20 14:08:24 +00:00
gingerBill a0e3a99dd1 Remove need for semaphore in Thread 2022-12-20 14:07:14 +00:00
gingerBill 0edda2bea7 Clarify ThreadPool interface; Move import_mutex guarding to just the string set 2022-12-20 12:46:33 +00:00
gingerBill a13e2f4578 Fix minor race condition 2022-12-19 00:29:40 +00:00