Commit Graph

80 Commits

Author SHA1 Message Date
Laytan
c4d1cd6ee5 fixes for 32bit with regards to typeid 2025-11-04 21:37:29 +01:00
gingerBill
738a72943b Try moving parapoly procs into a separate module when doing weak monomorphization 2025-09-18 15:04:16 +01:00
gingerBill
ae02d3d02d Begin supporting string16 across the core library 2025-08-02 11:55:16 +01:00
gingerBill
c383e550f9 Merge branch 'master' into bill/raddebugger-custom-section 2025-05-22 16:04:42 +01:00
tf2spi
2f636886a5 Add debug info for labels (#4385)
* Emit label debug info w/o location

* Insert debug label call

* Slight refactor for later fix

* Improve debug labels for block statements

* Improve debug info with for loops

* Generate label lbBlocks w/ debug

* Lightly refactor lb_add_debug_label

* Revise comments, add null check assertion

* Use LLVM-C API for debug labels

* Prefer C DILabel API for POSIX, fallback to CPP

* Use version check for LLVM-C DILabel
2025-05-15 22:11:06 +02:00
gingerBill
ea65a7b870 Move raddbg string stuff to a thread-safe queue 2025-05-07 14:26:10 +01:00
gingerBill
833d77da1f Add column major matrix support 2025-05-07 13:20:14 +01:00
gingerBill
e0125ccec2 Begin work on adding support for the .raddbg section for the RAD Debugger 2025-05-07 11:30:15 +01:00
gingerBill
ce5b7cccab Fix lb_add_debug_local_variable to use the correct procedure in LLVM 20 2025-04-03 10:04:14 +01:00
gingerBill
d209af5094 Update to LLVM 20.1.0 2025-03-18 15:39:18 +00:00
gingerBill
90a973ccf6 Make debug symbols use the new name canonicalization rules 2025-02-20 10:27:59 +00:00
Laytan Laats
2620721128 '#no_nil' I am actually disappointed in myself 2025-01-08 21:45:59 +01:00
Laytan Laats
b3c359557e #no_nil third time's the charm 2025-01-08 21:24:22 +01:00
Laytan Laats
7185a93a86 actually fix #no_nil debug info
Fixes #4664
2025-01-08 20:24:31 +01:00
Laytan Laats
2aae4cfd46 fix #no_nil in debug info
Fixes #4664
2025-01-08 18:47:32 +01:00
gingerBill
e38a08013e Remove #relative types from the compiler 2024-11-14 16:17:24 +00:00
Laytan Laats
d03d9e49a6 fix #4243 2024-09-15 00:03:20 +02:00
Laytan Laats
4f3f256375 improve bit field debug info 2024-09-14 15:52:37 +02:00
gingerBill
5a4746c3a0 Improve debug information for procedure types 2024-09-07 17:41:16 +01:00
gingerBill
8b248673c1 Fix #4105 2024-08-24 13:36:43 +01:00
gingerBill
549311fac9 Fix global variables being "missing" with -use-separate-modules 2024-07-15 12:21:42 +01:00
gingerBill
eef2aef021 Fix #3724 2024-06-10 15:07:45 +01:00
Laytan Laats
7d29389834 fix debug info IR error on LLVM < 13 2024-06-04 14:41:42 +02:00
Laytan Laats
90369b669b fix direct proc args debug info 2024-04-22 19:36:24 +02:00
gingerBill
f84a092977 Fix typo. 2024-04-18 11:28:46 +01:00
gingerBill
aad41fc762 Fix #3445 2024-04-18 11:27:42 +01:00
Laytan Laats
4fc96e1ca5 change unneeded permanent allocation to temporary 2024-04-01 19:06:05 +02:00
Laytan Laats
cfc85fd737 fix wrong type in map debug info 2024-04-01 18:42:10 +02:00
Laytan Laats
7c2352ea08 remove soa handling in debug info, fields are already added in checker 2024-04-01 16:51:16 +02:00
Laytan Laats
9647cb74ad debug info fixes/refactor
This fixes (on my end) #3340, #3117, #2945, #2922, and #2762

A general refactor of debug info generation in order to fix issues and
increase stability.

What I believe is the root cause of a bunch of issues is that we use the
temporary metadata/forward declarations too much (/ hold onto them for
too long). It seems to cause problems with the reference counting inside
LLVM.

This PR reduces the use of these forward declarations to a minimum, it
creates it, fills in the fields, and resolves it, instead of waiting
until the end of generating code.

Some smaller issues I came across have also been solved.
2024-04-01 16:28:44 +02:00
gingerBill
4edcaa6124 Try storing a pointer to a fake metadata type in the debug info for a map 2024-03-30 10:29:20 +00:00
Laytan Laats
915f63b3f9 fix a segfault when incomplete types array resizes while processing 2024-03-29 22:42:12 +01:00
gingerBill
ff24cfe314 Fix debug issue with maps 2024-03-01 14:00:14 +00:00
gingerBill
a4b8c1ea17 Begin work adding bit_field 2024-02-22 15:55:54 +00:00
gingerBill
912c326d8b Fix typo that causes map info debug issues 2024-02-13 17:06:04 +00:00
gingerBill
5cd57a3a7f Use Raw_Map as the debug information for a map 2024-02-13 15:50:07 +00:00
gingerBill
c291fffce1 Add metadata type to maps debug information to aid debuggers knowing what is in it it 2024-02-12 12:29:37 +00:00
gingerBill
c91898a888 Remove #relative slices; Replace with #relative multi-pointers 2023-08-05 16:05:39 +01:00
gingerBill
4a75a1e839 Merge branch 'master' into separate-int-word-sizes 2023-06-06 22:42:04 +01:00
gingerBill
8bf32ac697 Minor change to handling of propagation of errors with --- as a value 2023-05-22 12:53:29 +01:00
gingerBill
60ec3594ab Remove unused variable 2023-05-18 11:29:27 +01:00
gingerBill
685f7d0fea Rename word_size to ptr_size internally to make it clearer 2023-04-20 12:18:13 +01:00
gingerBill
84f966cb8f Begin work on separating int and word sizes (i.e. size_of(int) might not equal size_of(uintptr)) 2023-04-20 11:46:41 +01:00
gingerBill
7c0257fcda Fix value elision on declaration 2023-03-09 15:39:41 +00:00
gingerBill
55176e52fc Use heap_allocator() with -debug; Reinstate the arena guards 2023-01-23 11:38:18 +00:00
gingerBill
65c0255e7e Replace RecursiveMutex with a BlockingMutex 2023-01-16 18:05:58 +00:00
gingerBill
3b22c6620c Begin to generalize modules away from AstPackage * in -use-separate-modules 2023-01-12 17:13:25 +00:00
gingerBill
5eee8077dd enum-ifiy function pass managers for lbModule 2023-01-05 15:56:45 +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