aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Add sort for global types and proceduresgingerBill2024-07-081-0/+24
|
* disallow non-global foreign import of variables on wasmLaytan Laats2024-06-281-2/+0
|
* Avoid sporadic wasm crashJeroen van Rijn2024-06-281-1/+1
|
* Make verification ignorable with a define flaggingerBill2024-06-111-0/+13
|
* Minor clean up for backendgingerBill2024-06-111-54/+76
|
* Unify LLVMVerifyFunction invocations into on placegingerBill2024-06-111-54/+47
|
* Add `@(rodata)`gingerBill2024-06-061-2/+18
|
* llvm-18: enable sroa and static map callsLaytan Laats2024-05-071-0/+12
|
* llvm 18: general unix and darwin specificsLaytan Laats2024-05-071-7/+391
|
* compiler: improve target features supportLaytan Laats2024-05-021-59/+45
|
* Enforce as global constantgingerBill2024-04-181-1/+1
|
* debug info fixes/refactorLaytan Laats2024-04-011-6/+0
| | | | | | | | | | | | | | | | | | 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.
* Replace `gb_exit(1)` with `exit_with_errors()` where appropriategingerBill2024-03-191-7/+7
|
* Serialize errors to make them sortable, deterministic, and generally more ↵gingerBill2024-03-191-1/+1
| | | | control
* Merge branch 'odin-lang:master' into haikuavanspector2024-02-291-54/+10
|\
| * Make `lb_type_info` use a procedure to load the global valuegingerBill2024-02-271-1/+1
| |
| * Add type info generation for `bit_field`gingerBill2024-02-271-0/+2
| |
| * Remove `__$startup_type_info` proceduregingerBill2024-02-271-40/+3
| |
| * Change type info table to be initializable constantlygingerBill2024-02-271-14/+5
| | | | | | | | []Type_Info -> []^Type_Info
* | Merge branch 'haiku' of https://github.com/avanspector/Odin into haikuavanspector2024-02-251-1/+7
|\|
| * Begin work adding `bit_field`gingerBill2024-02-221-1/+7
| |
* | Improve Haiku supportavanspector2024-02-251-2/+2
|/
* Fix `lb_hasher_proc_for_type`gingerBill2024-02-071-1/+1
|
* Mock out commentsgingerBill2024-02-021-0/+5
|
* Add freestanding aarch64 targetcodename-irvin2024-01-151-1/+1
|