aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into bill/raddebugger-custom-sectiongingerBill2025-05-221-25/+100
|\
| * fix global and static anyLaytan Laats2025-05-171-19/+24
| | | | | | | | Fixes #4627
| * some ABI fixups and improvementsLaytan Laats2025-05-091-3/+55
| | | | | | | | | | | | | | | | | | | | | | Started with trying to enable asan in the CI for MacOS, noticed it wasn't enabled on the `tests/internal` folder, it came up with a couple of issues with the abi/OdinLLVMBuildTransmute that this also solves. - Looking at clang output for arm64, we should be promoting `{ i64, i32 }` to `{ i64, i64 }` - after doing the previous point, I noticed this is not handled well in OdinLLVMBuildTransmute which was emitting loads and stores into the space of a value that was alignment, asan does not want this, looking at clang output again, a memcpy is the appropriate way of handling this. - Having done this we don't need the hacky "return is packed" set anymore in the amd64 sysv ABI anymore either
| * Merge pull request #5117 from bogwi/bug/5024gingerBill2025-05-091-2/+18
| |\ | | | | | | Bug/5024
| | * CHECK 2 donebogwi2025-05-051-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Add support for handling generic types in LLVM backend - Updated `lb_type_internal` to return a pointer type for unspecialized generics. - Modified `write_type_to_canonical_string` to handle specialized generics without panicking. - Enhanced `default_type` to return the default type of specialized generics when applicable.
| | * CHECK 1 donebogwi2025-05-051-2/+10
| | | | | | | | | | | | | | | | | | | | | Fix panic in LLVM backend when using generic procedure with default arguments - Fixed panic in `llvm_backend_proc.cpp` when using unspecialized polymorphic procedures as defaults. - Ensured correct type inference when generic procedures are used as default parameters.
| * | Merge pull request #5064 from harold-b/hb/objc-classesgingerBill2025-05-081-0/+2
| |\ \ | | | | | | | | Add support for Objective-C class implementation
| | * | Fix indentationsHarold Brenes2025-04-271-2/+2
| | | | | | | | | | | | | | | | Fix Objective-C wrapper procs not forwarding return value
| | * | Add initial support for Objective-C class implementationHarold Brenes2025-04-201-0/+2
| | |/
* | / Move raddbg string stuff to a thread-safe queuegingerBill2025-05-071-0/+1
|/ /
* / Add asan support for various allocatorsLucas Perlind2025-05-061-0/+7
|/
* Propagate `@(link_section=<string>)` to nested declarationsgingerBill2025-04-081-8/+15
|
* Rewrite objc SEL/Class register handling codegingerBill2025-04-031-0/+2
|
* fix off by one temp cstring and put objc names on permanent allocator to be safeLaytan Laats2025-03-211-5/+1
| | | | Fixes #4922
* Fix object name generation to previous behaviourgingerBill2025-03-061-23/+50
|
* Improve global array index to be on a per module basisgingerBill2025-02-251-14/+11
|
* Make `lb_add_global_generated_from_procedure` not use a global index but ↵gingerBill2025-02-251-6/+2
| | | | local to procedure
* Fix `lb_add_global_generated_with_name`gingerBill2025-02-251-2/+3
|
* Use more predictable object namegingerBill2025-02-251-6/+9
|
* Use more deterministic module namesgingerBill2025-02-251-2/+9
|
* Try to make globally generated variables deterministic in namegingerBill2025-02-251-24/+11
|
* Canonicalize generated procedures (hasher/equal/map)gingerBill2025-02-241-4/+1
|
* Fix canonicalizationgingerBill2025-02-241-0/+26
|
* Fix typeid size in LLVMgingerBill2025-02-201-1/+1
|
* Handle `any` correctly for 32-bit systemsgingerBill2025-02-201-5/+14
|
* Remove debug printgingerBill2025-02-181-1/+0
|
* Add `TypeWriter` stream to allow for in-place hashing and string generationgingerBill2025-02-181-2/+2
|
* Begin work on hash typesgingerBill2025-02-171-2/+0
|
* Clean up rules for name manglinggingerBill2025-02-171-158/+4
|
* Use new name canonicalization approachgingerBill2025-02-171-2/+4
|
* Work on making name mangling deterministicgingerBill2025-02-171-2/+41
|
* -obfuscate-source-code-locations on bounds checks and type assertionsLaytan Laats2025-02-051-31/+21
|
* Pack struct when needed, use field_align metadatamisomosi2024-12-221-1/+17
|
* Try to fix #4553gingerBill2024-12-051-1/+1
|
* Remove `#relative` types from the compilergingerBill2024-11-141-139/+0
|
* check packed load and set alignment on all loads, not just lb_emit_loadLaytan Laats2024-10-251-14/+35
|
* fix erronous updating alignment of external globallaytan2024-10-221-5/+5
|
* add support for linux_riscv64 and freestanding_riscv64Laytan2024-08-201-1/+7
|
* Cache the paddding filler typegingerBill2024-08-181-0/+3
|
* Correct `lbAddr_SoaVariable` logicgingerBill2024-08-181-2/+15
|
* Begin work for `bit_set[...; [N]T]` (not working)gingerBill2024-07-151-0/+2
|
* Fix `case:` in type switch issuegingerBill2024-07-151-1/+1
|
* Make linkage weak in certain placesgingerBill2024-07-151-44/+39
|
* Fix global variables being "missing" with `-use-separate-modules`gingerBill2024-07-151-45/+54
|
* Fix possible race and correct linkage _after_ generationgingerBill2024-07-151-1/+3
|
* Fix #3902gingerBill2024-07-111-1/+2
|
* Merge pull request #3895 from laytan/fix-optimization-mode-attributegingerBill2024-07-101-0/+6
|\ | | | | remove misleading @(optimization_mode) values and make "none" inhibit optimizations
| * remove misleading `@(optimization_mode)` values and make "none" inhibit ↵Laytan Laats2024-07-081-0/+6
| | | | | | | | optimizations
* | Add `-internal-cached`gingerBill2024-07-081-11/+11
| |
* | Correct `-use-separate-module` behaviourgingerBill2024-07-081-1/+2
|/