aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* 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
|