aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix `union #maybe` comparison against `nil` -llvm-apipre-dev-2021-04gingerBill2021-04-261-0/+3
|
* 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
|
* Add `-doc-format` command for the new .odin-doc file format (to be used to ↵gingerBill2021-04-181-1/+0
| | | | generate documentation tools)
* Correct call site attributesgingerBill2021-04-141-2/+2
|
* Add `@(cold)` attribute to procedure declarationsgingerBill2021-04-141-2/+33
|
* Minor fixes to platform checking codegingerBill2021-04-111-0/+10
|
* Add `break;` for sanitygingerBill2021-04-081-1/+1
|
* Add "Dwarf Version" metadata for `darwin` on `-llvm-api`gingerBill2021-04-081-4/+16
|
* Add assertion check on parameter types for `lb_emit_call_internal`gingerBill2021-04-061-4/+24
|
* Fix `LLVMConstIntOfArbitraryPrecision` usage for a pointergingerBill2021-04-061-3/+8
|
* Undo fixgingerBill2021-04-031-7/+0
|
* Fix lb_emit_array_epgingerBill2021-04-031-1/+8
|
* Fix signed fixed arithmetic intrinsicsgingerBill2021-04-011-5/+6
|
* Cleanup againgingerBill2021-04-011-2/+4
|
* Cleanup code for fixed-point intrinsicsgingerBill2021-04-011-11/+9
|
* Implement fixed-point arithmetic intrinsics for -llvm-api backendgingerBill2021-04-011-0/+46
|
* Implement `f16` functionalitygingerBill2021-04-011-14/+97
|
* Change `>>` behaviour in LLVM to prevent stupid UBgingerBill2021-03-301-4/+4
|
* Fix shifting limits and LLVM code gen bug relating to shiftsgingerBill2021-03-291-6/+8
|
* Change how `lb_populate_module_pass_manager` handles the ↵gingerBill2021-03-291-7/+14
| | | | LLVMPassManagerBuilder calls
* Clamp maximum optimization level to 2 for `-llvm-api`gingerBill2021-03-291-3/+3
|
* Change alignment of alloca to a larger one if `OdinLLVMBuildTransmute` ↵gingerBill2021-03-291-0/+12
| | | | requires it
* Another minor change to `OdinLLVMBuildTransmute` regarding minimum source ↵gingerBill2021-03-291-1/+5
| | | | alignment
* Change `OdinLLVMBuildTransmute` when to deal with loadsgingerBill2021-03-291-9/+4
|
* Issue #823 - Change semantics of `disabled` attribute to not evaluate any of ↵gingerBill2021-03-271-0/+7
| | | | the parameters at run time
* Fix endian conversion to and from floats and intsgingerBill2021-03-271-0/+24
|
* Remove extra passesgingerBill2021-03-271-6/+4
|
* Fix byte swapping for endian specific types in `-llvm-api`gingerBill2021-03-271-0/+11
|
* Move variable declarations to aid other compilersgingerBill2021-03-251-3/+3
|
* Fix to `OdinLLVMBuildTransmute` to `goto general_end` on different sized datagingerBill2021-03-251-4/+7
|
* Fix pseudo-constant local slice initializationgingerBill2021-03-251-7/+8
|
* Minor zero enforcementgingerBill2021-03-251-1/+1
|
* Fix pseudo-constant local embedded slice generationgingerBill2021-03-251-3/+39
|
* Change to assert to test both LLVMIsConstant and LLVMIsGlobalConstantgingerBill2021-03-251-1/+1
|
* Revert change :DgingerBill2021-03-251-1/+1
|