aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_utility.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* General clean up of LLVM*GEP2 codegingerBill2022-08-101-22/+17
|
* Wrap all `LLVMGetElementType` usesgingerBill2022-08-091-4/+4
|
* Eliminate use of LLVMGetElementType for pointersgingerBill2022-08-091-3/+1
|
* Merge pull request #1933 from lerno/reduce_reliance_on_ptr_typegingerBill2022-08-091-146/+66
|\ | | | | Removed use of deprecated functions. Cleaned up most deprecated use o…
| * Removed use of deprecated functions. Cleaned up most deprecated use of ↵Christoffer Lerno2022-08-071-146/+66
| | | | | | | | LLVMGetElementType.
* | Add `#soa` pointer type to aid with refactoring to `#soa` data typesgingerBill2022-08-081-1/+34
|/ | | | | | | | a: #soa[16]Foo p := &a[6] #assert(type_of(p) == #soa^#soa[16]Foo) p^.x = 123 p.x = 123
* Allow for `foo() or_else unreachable()` and other diverging proceduresgingerBill2022-08-051-23/+46
|
* Force memset instead of store zeroinitializer when the value is largegingerBill2022-07-241-4/+4
|
* Mock up for the ability to enforce our own `runtime.memset` if necessarygingerBill2022-07-161-11/+24
|
* Support `count_ones` etc with #simdgingerBill2022-05-261-2/+4
|
* Simplify transmute for #simdgingerBill2022-05-251-0/+5
|
* Replace the atomic intrinsicsgingerBill2022-03-311-0/+22
| | | | Matching C11 in style
* Merge branch 'master' into freestanding_amd64gingerBill2022-03-141-2/+2
|\
| * #Fix 1615 Replace `llvm.readcyclecounter` with `cntvct_el0` on arm64gingerBill2022-03-121-1/+1
| |
| * Add relative slice to type checks for built in lenJoakim Hentula2022-03-021-1/+1
| |
* | Commit rest of code for `-disallow-rtti`gingerBill2022-02-281-8/+22
|/
* Use `objc_allocateClassPair` for `intrinsics.objc_register_class`gingerBill2022-02-141-3/+5
|
* Add new objc intrinsics: objc_(register|find)_(selector|class)gingerBill2022-02-141-35/+98
|
* Add `intrinsics.type_is_subtype_of`; `intrinsics.objc_selector_name`gingerBill2022-02-081-0/+11
|
* Begin work on support objc intrinsicsgingerBill2022-02-081-0/+96
|
* Add `#no_type_assert` and `#type_assert` to disable implicit type assertions ↵gingerBill2022-01-271-15/+26
| | | | with `x.(T)`
* Rename architecture `386` to `i386`gingerBill2022-01-151-1/+1
|
* Correct `lb_emit_ptr_offset` bug caused by `LLVMConstGEP` assuming a signed ↵gingerBill2021-12-291-1/+1
| | | | index
* Fix #1328gingerBill2021-11-231-13/+5
|
* Remove many LLVM optimization passes which were causes UB due to them ↵gingerBill2021-11-061-6/+19
| | | | assuming C-like behaviour incompatible with Odin
* Make llvm backend code use `PtrMap`; remove dead codegingerBill2021-11-051-3/+3
|
* Fix `lb_emit_array_epi` for matrix typesgingerBill2021-11-041-2/+2
|
* Improve `wasm-import` semantics to allow procedures from different import pathsgingerBill2021-11-021-0/+33
|
* core/intrinsics: Add mem_zero_volatileYawning Angel2021-10-311-3/+3
|
* Begin work on supporting `wasm64`; Correct `wasm32` compilation behaviourgingerBill2021-10-301-0/+1
|
* Correct `llvm_vector_shuffle_reduction`gingerBill2021-10-281-5/+15
|
* Write a `log(n)` fallback for `llvm_vector_reduce_add`gingerBill2021-10-281-5/+61
| | | | This may be what LLVM does at any rate
* Support `llvm_vector_reduce_add` if the LLVM intrinsic is not supportedgingerBill2021-10-281-9/+26
|
* Merge branch 'master' into new-matrix-typegingerBill2021-10-261-3/+13
|\
| * Add `llvm_get_inline_asm` for future compatibilitygingerBill2021-10-261-0/+13
| |
* | Improve use of vector muladd operationsgingerBill2021-10-251-0/+44
| |
* | Improve matrix code generation for all supported platformsgingerBill2021-10-251-1/+20
| | | | | | | | Through assembly optimization
* | Update alignment rules for `matrix` types as a compromise to keep zero paddinggingerBill2021-10-251-1/+1
| |
* | Make `lb_emit_matrix_mul` SIMD if possiblegingerBill2021-10-201-1/+28
| |
* | Add `llvm_vector_reduce_add`gingerBill2021-10-201-0/+41
| |
* | Make `lb_emit_matrix_mul_vector` use SIMD if possiblegingerBill2021-10-201-0/+32
| |
* | Support matrix literalsgingerBill2021-10-201-6/+72
| |
* | Support indexing matricesgingerBill2021-10-191-0/+31
| |
* | Basic support for matrix*vector, vector*matrix operationsgingerBill2021-10-191-4/+6
| |
* | Very basic matrix support in backendgingerBill2021-10-181-0/+35
|/
* Minor code cleanup for backend; add ↵gingerBill2021-10-021-1/+1
| | | | `struct_fields_index_by_increasing_offset` for future use
* Remove need for alignment `lb_struct_has_padding_prefix`gingerBill2021-10-021-5/+0
|
* Heavily improve the LLVM struct type generation to improve ABIgingerBill2021-10-021-8/+39
|
* LLVM Code Generator: Add explicitly padding between fields in LLVM struct typesgingerBill2021-09-131-6/+49
|
* Only store `field_index` remove `field_src_index` (for the time being)gingerBill2021-09-131-8/+12
|