aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Implement instrumentation passgingerBill2024-01-071-2/+0
|
* src: `enable_target_feature` should add features, not overwriteYawning Angel2024-01-071-1/+40
| | | | | | | | | | | | | | | | `llvm_features` being empty is the default state, and implies the presence of certain features. Previously if any target features were explicitly enabled by the `enable_target_feature` attribute, they were added comma separated to `llvm_features`. For example: `lzcnt,popcnt,...,sse4.2,sse` This was causing LLVM to try to target a CPU that *ONLY* has the explicitly enabled features. This now will prefix explicitly enabled features with a `+`, and preserve the existing `llvm_features` string by appending to it if it is set.
* Reduce repetition on initializing global type info member arraysgingerBill2023-12-131-52/+10
|
* Silence writable string warnings when compiling Odin on Linux.Jeroen van Rijn2023-12-031-9/+9
|
* Facored out `get_default_microarchitecture`Jeroen van Rijn2023-11-101-15/+20
| | | | Moved `generic` -> `x86-64-v2` selection into its own procedure so that `llvm_backend.cpp` and `main.cpp` can share the same logic.
* Add -microarch:?Jeroen van Rijn2023-11-101-0/+7
|
* Fix empty pass because of trailing commaLaytan2023-10-311-1/+1
|
* Explicitly write out the passes for each level and remove certain passesgingerBill2023-10-301-9/+256
|
* TEST: Add sroa passes backgingerBill2023-10-291-1/+4
|
* Remove trailing commagingerBill2023-10-291-1/+1
|
* Use default passes without coro, openmp, and sroa passesgingerBill2023-10-291-12/+31
|
* Test: use custom passes for -o:speedgingerBill2023-10-291-1/+122
|
* Only make static map get calls inlineable outside of debug buildsgingerBill2023-10-271-2/+2
|
* Fix static map calls and default to them!gingerBill2023-10-271-6/+26
|
* Disable using giant packed struct for type info table for the time beinggingerBill2023-10-271-1/+3
|
* Support LLVM >=17.0.1 on Darwin and Linuxjcmdln2023-10-111-3/+23
|
* Generate the global type info member values even if the count is `0`gingerBill2023-09-271-52/+50
|
* Use a giant packed struct working for type info tablegingerBill2023-09-221-2/+23
|
* Begin work on making the type info table be constantly initializedgingerBill2023-09-221-3/+9
|
* Minor clean upgingerBill2023-09-221-24/+10
|
* Remove debug textgingerBill2023-09-211-2/+0
|
* Fix build times for `-o:<string>` in LLVM-17gingerBill2023-09-211-15/+15
|
* Allow for zero passesgingerBill2023-09-211-0/+5
|
* Add asan lib for WindowsgingerBill2023-09-211-0/+15
|
* Re-configure the new pass systemgingerBill2023-09-211-18/+27
|
* Add `-o:aggressive` for LLVM 17gingerBill2023-09-211-10/+19
|
* Support `-sanitize:<string>` for `address`, `memory`, `thread` for LLVM 17gingerBill2023-09-211-1/+17
|
* Begin work with adding the new pass systemgingerBill2023-09-201-0/+54
|
* Update to LLVM-17gingerBill2023-09-191-3/+3
|
* Fix comparison of two `nil` unions against each othergingerBill2023-08-161-2/+17
|
* fix indentationLaytan Laats2023-07-111-5/+6
|
* use lb_emit_select instead of lb_emit_if for exit checkLaytan Laats2023-07-111-22/+4
|
* exit with code 1 on `odin test` failureLaytan Laats2023-07-031-12/+32
|
* Fix #2594 zero sized union code generationgingerBill2023-06-261-1/+3
|
* Fix a race condition when produced anonymous procedure literals with ↵gingerBill2023-06-131-52/+1
| | | | `-use-separate-modules`
* Rename `ODIN_DISALLOW_RTTI` to `ODIN_NO_RTTI`; Remove dead command line flagsgingerBill2023-06-121-2/+2
|