aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix LLVM store point for nested types containing procedures (e.g. `^^proc()`)gingerBill2021-05-051-1/+33
|
* Unify `AstTernaryExpr` with `AstTernaryIfExpr`gingerBill2021-05-051-41/+0
| | | | | Allow for both syntaxes `x if cond else y` and `cond ? x : y` Removes the confusing semantics behind `?:` which could be `if` or `when` depending on the context.
* Mark external thread local globalsgingerBill2021-05-051-0/+19
|
* Minor cleanupgingerBill2021-05-051-2/+5
|
* Move anonymous proc generation into `lbGenerator`gingerBill2021-05-041-7/+7
|
* Nearly approach full functionality for -use-separate-modules coupled with ↵gingerBill2021-05-041-88/+129
| | | | multithreading
* Get LLVM backend multithread for object generation with `-use-separate-modules`gingerBill2021-05-041-34/+29
|
* Prepare to multithread object generationgingerBill2021-05-031-22/+116
|
* Remove test codegingerBill2021-05-031-12/+0
|
* Minor fixes to -use-separate-modulesgingerBill2021-05-031-18/+5
|
* Experimental support for `-use-separate-modules`gingerBill2021-05-031-9/+47
|
* Add min_f16 and max_f16 dependenciesgingerBill2021-05-031-0/+2
|
* Begin work on making LLVM backend work with multiple modules for possible ↵gingerBill2021-05-031-274/+394
| | | | faster compilation
* Force `zero_init` in `lb_add_local` in certain casesgingerBill2021-05-031-0/+15
|
* Begin cleanup for allowing for multiple LLVM modulesgingerBill2021-05-031-276/+304
|
* Remove non-InContext type creationsgingerBill2021-05-031-10/+24
|
* Make sure builder uses the `InContext` versiongingerBill2021-05-031-1/+5
|
* Fix typogingerBill2021-05-031-1/+1
|
* Correct hashing for union #maybegingerBill2021-05-031-2/+12
|
* Allow unions which are comparable to also be valid map keys (i.e. hashable)gingerBill2021-05-031-2/+37
|
* Allow `union`s to be comparable if all their variants are comparablegingerBill2021-05-031-6/+65
|
* Simplify/Fix the state_flag behaviour for code generationgingerBill2021-05-011-29/+13
|
* Fix #921gingerBill2021-04-281-1/+11
|
* Add "naked" calling convention (removes prologue and epilogue)gingerBill2021-04-281-0/+4
|
* Fix procedure entity findinggingerBill2021-04-271-8/+20
|
* Make atomic compare related intrinsics optional okgingerBill2021-04-271-18/+30
|
* Fix #893gingerBill2021-04-271-15/+23
|
* Fix constant aliasing for debug informationgingerBill2021-04-261-2/+6
|
* Merge branch 'master' into old-backend-removalgingerBill2021-04-261-0/+3
|\
| * Fix `union #maybe` comparison against `nil` -llvm-apipre-dev-2021-04gingerBill2021-04-261-0/+3
| |
* | Add `intrinsics.count_zeros`gingerBill2021-04-251-0/+10
| |
* | Rename intrinsics to count_trailing_zeros and count_leading_zerosgingerBill2021-04-251-6/+6
| |
* | Replace many `foreign` llvm calls with intrinsicsgingerBill2021-04-251-0/+22
| |
* | Remove old procedure ABI codegingerBill2021-04-251-11/+8
|/
* Fix #857gingerBill2021-04-251-4/+15
|
* Fix #911 for -llvm-api backendgingerBill2021-04-251-1/+1
|
* Up ci.ymlgingerBill2021-04-241-1/+1
|
* Move out some intrinsics into separate procedures in llvm_backend.cpp; ↵gingerBill2021-04-241-43/+72
| | | | Rename `InlineRangeStmt` to `UnrollRangeStmt` (eventually merge the two AST nodes)
* Improve `auto_cast` logicgingerBill2021-04-221-1/+2
|
* Reuse unused 'context' variables to minimize stack usage (-llvm-api)gingerBill2021-04-221-5/+39
|
* Make `main` calling convention "odin" rather than "contextless" to simplify ↵gingerBill2021-04-221-42/+42
| | | | code generation
* Remove old codegingerBill2021-04-221-14/+5
|
* Change function pass manager passesgingerBill2021-04-221-3/+3
|
* Change how `lb_populate_function_pass_manager` works by using the default ↵gingerBill2021-04-221-1/+36
| | | | LLVM passes when not using minimal optimizations
* Add intrinsics: overflow_add, overflow_sub, overflow_mul; Change byte swap ↵gingerBill2021-04-221-50/+73
| | | | behaviour in -llvm-api to be the same as the intrinsic
* Add intrinsics: byte_swap (integers and floats); count_ones; trailing_zeros; ↵gingerBill2021-04-221-0/+82
| | | | reverse_bits
* Remove `intrinsics.x86_mmx` typegingerBill2021-04-221-14/+4
|
* Add new intrinsics: debug_trap, trap, read_cycle_counter, expectgingerBill2021-04-221-0/+58
|
* Add `optimization_mode` attribute for proceduresgingerBill2021-04-221-4/+22
| | | | | Allowed modes: "none", "minimal", "size", "speed" Currently: none == minimal and size == speed
* Add `-build-mode:llvm-ir` for `-llvm-api` backendgingerBill2021-04-211-1/+7
|