Commit Graph

53 Commits

Author SHA1 Message Date
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
gingerBill
5ac36b5f25 HACK: Get around debugging type generation for slices and dynamic arrays of *nix systems 2022-11-23 22:46:02 +00:00
gingerBill
22bcf1ba70 Extra check for slices and dynamic arrays for -debug 2022-11-23 22:31:21 +00:00
gingerBill
51c705edf1 Add extra check to debug information of named composite types 2022-11-23 21:59:53 +00:00
gingerBill
27d56d0da4 Fix #2125 2022-11-21 10:25:34 +00:00
gingerBill
810a1eee41 Remove the need for type->Map.internal_type and replace with the definition of runtime.Raw_Map 2022-11-08 11:13:46 +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
Lucas Perlind
e188a542da llvm_backend_debug: Add debug info for soa pointer
This fixes issue #2113
2022-10-08 17:08:28 +11:00
gingerBill
913e8b2e02 Unify debug parameter code 2022-09-10 10:03:51 +01:00
gingerBill
623d687192 Split debug info generation for direct and indirect parameters 2022-09-09 23:07:09 +01:00
gingerBill
268fb22bca Use llvm.dbg.declare for procedure parameters rather than llvm.dbg.value 2022-09-07 23:47:33 +01:00
Fabian Sperber
fb167d1d0a Fix loop var (init) becoming hidden while stepping on the for-line
- set debug location of jumps between block (similar to clang to the location of 'for')
- extend scope range to include all parts of the for-stmt
2022-07-19 00:46:27 +02:00
gingerBill
6c7e5748a8 Integrate numerous debug fixes from #1877 2022-07-18 12:49:29 +01:00
gingerBill
33d96fd28a Correct debug information of #simd vectors 2022-06-20 16:00:17 +01:00
gingerBill
c223fc1766 Correct debug information for local variables 2022-02-28 12:06:35 +00:00
gingerBill
42ad54c28e Improve metadata for context 2022-02-16 15:18:22 +00:00
gingerBill
e011d812ca Improve debug information for direct procedure parmaters 2022-02-16 14:39:08 +00:00
gingerBill
0738822dda Change how parameter and variables are given debug values 2022-02-16 13:25:31 +00:00
gingerBill
2213722776 Change debug declare to value 2022-02-16 12:37:22 +00:00
gingerBill
eac74631ec Correct debug information logic for procedure parameters 2022-02-01 14:11:19 +00:00
gingerBill
3f038428a7 Begin minimizing Ast size 2021-11-14 15:12:37 +00:00
gingerBill
600d19c51b General catch-all for llvm debug types 2021-11-09 18:04:31 +00:00
gingerBill
6be104e521 Make llvm backend code use PtrMap; remove dead code 2021-11-05 16:43:53 +00:00
gingerBill
b01e0fbbc2 Correct typo in soa data type debug information generation 2021-11-01 23:00:42 +00:00
gingerBill
0b4cbcf409 Correct debug info for matrix type 2021-11-01 16:39:02 +00:00
gingerBill
7b8b2f042c Add debug type information for matrix 2021-10-29 00:13:22 +01:00
gingerBill
71f2289c20 Fix #1174 2021-09-18 15:10:29 +01:00
Jeroen van Rijn
0d12432d3f VS: Fix compilation using VS 2022. 2021-09-16 13:24:20 +02:00