aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Fix indentationsHarold Brenes2025-04-271-547/+561
| | | | | | | | | | | | Fix Objective-C wrapper procs not forwarding return value
| * | Allow the class's ivar to be used as a context provider receiver as well.Harold Brenes2025-04-231-15/+25
| | |
| * | Add support for Objective-C method implementation with Odin calling convention.Harold Brenes2025-04-231-4/+39
| | | | | | | | | | | | Use @objc_context_provider to provide a context for a type.
| * | Fix bug in @encode implementation.Harold Brenes2025-04-231-2/+2
| | |
| * | Include the ivar in the Objective-C class unconditionally of it being used ↵Harold Brenes2025-04-221-3/+2
| | | | | | | | | | | | | | | | | | or not. Allow pseudo-fields for ivar access.
| * | Fix ivar in multi-module mode.Harold Brenes2025-04-211-21/+48
| | |
| * | Add initial support for Objective-C class implementationHarold Brenes2025-04-201-33/+558
| | |
* | | fix disposing builder when not createdLaytan Laats2025-05-071-1/+0
| |/ |/| | | | | | | | | | | | | | | 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.
* | Add missing cast to global/static var alignments.Barinzaya2025-04-241-1/+1
| |
* | Correctly align global and static variables.Barinzaya2025-04-241-0/+1
|/ | | | | | This can be important if matrices or SIMD vectors are being used in global or static variables, as otherwise it may result in crashes due to aligned instructions accessing misaligned variables.
* Change hashing rules for float-like types to make `0 == -0`gingerBill2025-04-161-0/+47
|
* Propagate `@(link_section=<string>)` to nested declarationsgingerBill2025-04-081-5/+14
|
* Rewrite objc SEL/Class register handling codegingerBill2025-04-031-12/+33
|
* few llvm 20 changesLaytan Laats2025-03-191-0/+8
|
* Add new LLVM 20 passesgingerBill2025-03-181-791/+1
|
* Update to LLVM 20.1.0gingerBill2025-03-181-6/+9
|
* Remove debug printgingerBill2025-03-111-2/+0
|
* Fix object name generationgingerBill2025-03-111-2/+3
|
* Merge branch 'master' of https://github.com/odin-lang/OdingingerBill2025-03-011-2/+2
|\
| * fix hidden linkage applied to foreign symbolsLaytan Laats2025-03-011-2/+2
| |
* | Fix for `-use-single-module`gingerBill2025-03-011-6/+9
|/
* Use more predictable object namegingerBill2025-02-251-20/+20
|
* Canonicalize generated procedures (hasher/equal/map)gingerBill2025-02-241-34/+23
|
* More name canonicalization for globalsgingerBill2025-02-241-4/+5
|
* Fix canonicalizationgingerBill2025-02-241-7/+12
|
* Canonicalize generated proceduresgingerBill2025-02-241-25/+14
|
* Move temporary array out of `CheckerInfo`gingerBill2025-02-221-1/+4
|
* Change `typeid` definition to be based around the canonical type hashgingerBill2025-02-201-2/+3
| | | | | | | | `typeid` used to be a fancy index with extra metadata stored on it. Now it is direct hash of the type. This is safe to do in practice since any possible collisions are checked at compile time AND the chances of having a 1% collision are around 1 in 600K (see the Birthday Paradox). Therefore accessing a `^Type_Info` is now a hash table lookup with linear probing. The table is twice the size than necessary so prevent too much probing due to an overly dense hash table.
* Simplify type info table constructiongingerBill2025-02-171-1/+3
|
* Begin work on hash typesgingerBill2025-02-171-3/+4
|
* make corrected linkage with -use-separate-modules apply hidden visibilityLaytan Laats2025-02-061-0/+6
| | | | | | | | Fixes #4798 The DLL was using the type info of the host/exe, causing crashes. This PR tries fixing by applying hidden visibility to these corrected symbols which makes sure that the DLL can't see the type table of the host/exe.
* optimize fixLaytan Laats2025-01-241-10/+2
|
* fix separate modules with objc codeLaytan Laats2025-01-241-2/+10
|
* Make `-no-dynamic-literals` the default nowgingerBill2025-01-051-2/+0
|
* Check for `LLVM_VERSION_MAJOR >= 18`gingerBill2024-09-091-0/+2
|
* Add internal flaggingerBill2024-09-091-0/+5
| | | | `-internal-fast-isel`
* add support for linux_riscv64 and freestanding_riscv64Laytan2024-08-201-1/+30
|
* fix `specific_union_variant in map_keyed_by_union` not converting to union typeLaytan Laats2024-07-291-4/+6
|
* Fix #3964gingerBill2024-07-231-2/+3
|
* Make linkage weak in certain placesgingerBill2024-07-151-5/+10
|
* Fix global variables being "missing" with `-use-separate-modules`gingerBill2024-07-151-21/+16
|
* Fix possible race and correct linkage _after_ generationgingerBill2024-07-151-16/+28
|
* Default to `-o:minimal` againgingerBill2024-07-141-0/+1
|
* Merge pull request #3895 from laytan/fix-optimization-mode-attributegingerBill2024-07-101-12/+5
|\ | | | | remove misleading @(optimization_mode) values and make "none" inhibit optimizations
| * remove misleading `@(optimization_mode)` values and make "none" inhibit ↵Laytan Laats2024-07-081-12/+5
| | | | | | | | optimizations
* | Add `-internal-cached`gingerBill2024-07-081-2/+2
| |
* | Clean up timings messages showing used module countgingerBill2024-07-081-2/+11
| |
* | Correct `-use-separate-module` behaviourgingerBill2024-07-081-1/+1
|/
* Experiment with different uses of `-use-separate-modules`gingerBill2024-07-081-1/+5
|
* Use a temporary directory for -use-separate-modulesgingerBill2024-07-081-9/+28
| | | | Windows only currently