Commit Graph

222 Commits

Author SHA1 Message Date
gingerBill c383e550f9 Merge branch 'master' into bill/raddebugger-custom-section 2025-05-22 16:04:42 +01:00
gingerBill 92df892f25 Merge pull request #5064 from harold-b/hb/objc-classes
Add support for Objective-C class implementation
2025-05-08 12:58:33 +01:00
gingerBill ea65a7b870 Move raddbg string stuff to a thread-safe queue 2025-05-07 14:26:10 +01:00
Laytan Laats ad4866653a fix disposing builder when not created
Fixes #5128

p->builder is created in lb_begin_procedure_body, but that isn't called
if there is no body, and we were still calling dispose at that point.

Moved it into lb_end_procedure_body to match.
2025-05-07 14:39:51 +02:00
Lucas Perlind 83bc2d3c4a Add asan support for various allocators 2025-05-06 14:55:50 +10:00
Harold Brenes f3923ed666 Fix indentations
Fix Objective-C wrapper procs not forwarding return value
2025-04-27 22:55:53 -04:00
Harold Brenes a3de9c8de4 Add initial support for Objective-C class implementation 2025-04-20 21:53:46 -04:00
gingerBill fe040d1bbd Propagate @(link_section=<string>) to nested declarations 2025-04-08 11:36:53 +01:00
gingerBill cd5bef4f61 Rewrite objc SEL/Class register handling code 2025-04-03 09:37:38 +01:00
gingerBill 5eaff20f4a Add mutex for lb_handle_objc_find_or_register_class 2025-04-02 18:26:40 +01:00
gingerBill d0dd1b2d80 Add mutex for lb_handle_objc_find_or_register_selector 2025-04-02 18:23:08 +01:00
gingerBill 400348c925 Improve global array index to be on a per module basis 2025-02-25 15:06:13 +00:00
gingerBill 5aafbc7f30 Use more deterministic module names 2025-02-25 14:35:54 +00:00
gingerBill f9d85a7311 Try to make globally generated variables deterministic in name 2025-02-25 14:29:14 +00:00
gingerBill f56a0a80d3 Use type hash for doc writer 2025-02-24 15:37:54 +00:00
gingerBill de70e6faa0 Use more type hashes where possible 2025-02-24 15:33:35 +00:00
gingerBill 83f1c879ec Canonicalize generated procedures (hasher/equal/map) 2025-02-24 15:18:27 +00:00
gingerBill f0f395c510 Fix canonicalization 2025-02-24 14:24:06 +00:00
gingerBill 46a8991d0f Canonicalize generated procedures 2025-02-24 14:19:02 +00:00
gingerBill 99d91ccd31 Work on making name mangling deterministic 2025-02-17 11:32:49 +00:00
Laytan Laats 9dc17f4c47 optimize fix 2025-01-24 19:33:57 +01:00
Laytan Laats b2aaf90f88 fix separate modules with objc code 2025-01-24 19:23:49 +01:00
gingerBill a2a0a2c8d8 Merge pull request #4611 from tf2spi/4491-max-field-align-pack
Add packing + aligned access w/ field_align
2025-01-01 18:03:44 +00:00
gingerBill 7b334d2bd9 Add #branch_location 2025-01-01 17:26:15 +00:00
misomosi fdf510b7b3 Pack struct when needed, use field_align metadata 2024-12-22 10:05:13 -05:00
gingerBill 44124cb639 Merge pull request #4440 from 0dminnimda/support_llvm19
Add support for llvm version 19
2024-11-27 21:15:59 +00:00
gingerBill e38a08013e Remove #relative types from the compiler 2024-11-14 16:17:24 +00:00
0dminnimda dbed2c92b4 Add support for llvm version 19 2024-10-31 15:56:23 +03:00
Laytan Laats 603efa860a add '#caller_expression' 2024-09-14 22:13:37 +02:00
gingerBill 8e52a52580 Cache the paddding filler type 2024-08-18 18:37:40 +01:00
gingerBill bc5b41938e Fix #3964 2024-07-23 02:40:51 +01:00
gingerBill 549311fac9 Fix global variables being "missing" with -use-separate-modules 2024-07-15 12:21:42 +01:00
gingerBill c5decd3eae Fix possible race and correct linkage _after_ generation 2024-07-15 11:49:07 +01:00
gingerBill 6959554040 Calculate size and alignment, and reuse memory for all variadic calls within a procedure body 2024-07-14 13:44:47 +01:00
gingerBill 5027c7081e Reuse slice variable for variadic parameters 2024-07-14 12:50:33 +01:00
gingerBill 3dff83f3dc Mock out #no_capture for future use 2024-07-14 12:39:30 +01:00
gingerBill 8642d719f0 Imply #no_capture to all variadic parameters 2024-07-14 12:19:47 +01:00
gingerBill edc793d7c1 Add #no_capture args: ..T to reuse the backing array stack memory 2024-07-14 11:39:05 +01:00
gingerBill 34c6868e78 Merge pull request #3895 from laytan/fix-optimization-mode-attribute
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-10 13:22:57 +01:00
Laytan Laats 1a20b78633 remove misleading @(optimization_mode) values and make "none" inhibit optimizations 2024-07-08 21:06:57 +02:00
gingerBill 2c9ef6907a Clean up timings messages showing used module count 2024-07-08 15:30:33 +01:00
gingerBill 0b02c67cdf Minor clean up for backend 2024-06-11 12:19:52 +01:00
Laytan Laats 9d1db48549 remove is_packed bodge 2024-05-07 17:25:17 +02:00
Laytan Laats 77efdcd899 fix packed gep loads with wrong alignment 2024-05-07 16:52:46 +02:00
Laytan Laats ecddf3b7f1 llvm-18: cleanup 2024-05-07 16:52:46 +02:00
gingerBill de5ce90fa7 Add metadata to packed structs field accesses to state it is packed 2024-05-07 15:28:09 +01:00
gingerBill c330e5b5c1 Improve codegen for bit_field compound literals with an integer backing 2024-04-24 14:46:34 +01: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 effc71ca43 Fix case: bug with by-ref unions 2024-03-18 12:20:53 +00:00
gingerBill 5107bdc06b Make lb_type_info use a procedure to load the global value 2024-02-27 15:45:53 +00:00