aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_expr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Change `tav` to be a pointer internally"gingerBill2022-12-221-16/+16
| | | | This reverts commit e98f1a28e68e82753728f58b3465793192b74f9d.
* Change `tav` to be a pointer internallygingerBill2022-12-221-16/+16
|
* `gb_internal` LLVM backendgingerBill2022-12-181-40/+40
|
* Naïve optimization of named _split_ multiple return valued when `defer` is ↵gingerBill2022-11-251-1/+1
| | | | | | | | | | never used This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables are not allocated to represent the named return values by using that specific memory. In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not, or is ever passed to a nested procedure call (e.g. possibly escapes).
* Fixed comparison against nil for mapsgingerBill2022-11-201-8/+3
|
* Enforce pointer castgingerBill2022-11-131-1/+2
|
* Begin work on map static setgingerBill2022-11-111-1/+1
|
* Correct static map get; make get take a pointer to simplify compiler internalsgingerBill2022-11-101-1/+1
|
* Change map internal calls to use a pointergingerBill2022-11-091-2/+2
|
* Change `__dynamic_map_get` signaturegingerBill2022-11-081-2/+2
|
* Fix #2160 (deep subtyping through `using` of `_`)gingerBill2022-11-011-24/+23
|
* Optimize `#caller_location` and `#location` to use read only data section ↵gingerBill2022-10-311-2/+2
| | | | where possible
* Minor technical improvementgingerBill2022-09-221-2/+5
|
* Reduce unnecessary map getsgingerBill2022-09-211-14/+8
|
* Change `__dynamic_map_get` and `__dynamic_map_set` to use separate ↵gingerBill2022-09-171-9/+3
| | | | parameters rather than take a singular struct
* Fix #2017 mismatched types in binary matrix expression for `flt * (mat * vec)`gingerBill2022-09-051-5/+18
|
* Fix #1994 Returning to err: Maybe(Error) raises compiler assertgingerBill2022-09-011-1/+1
|
* Correct max alignment handling throughout the llvm backendgingerBill2022-08-241-3/+3
|
* Merge pull request #1955 from jaspergeer/fix-endian-type-conversiongingerBill2022-08-241-3/+0
|\ | | | | fix #1759 endian float type conversion errors
| * Remove erroneous byte swapJasper Geer2022-08-161-3/+0
| |
* | Fix #1963gingerBill2022-08-191-1/+1
|/
* Minor refactoring of `lb_build_addr`gingerBill2022-08-111-403/+417
|
* Clean up compound literal backend stuff some moregingerBill2022-08-111-176/+48
|
* Improve compound literal generation for array-like typesgingerBill2022-08-111-749/+617
|
* Eliminate use of LLVMGetElementType for pointersgingerBill2022-08-091-1/+1
|
* Merge pull request #1933 from lerno/reduce_reliance_on_ptr_typegingerBill2022-08-091-114/+116
|\ | | | | 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-114/+116
| | | | | | | | LLVMGetElementType.
* | Add `#soa` pointer type to aid with refactoring to `#soa` data typesgingerBill2022-08-081-4/+29
|/ | | | | | | | a: #soa[16]Foo p := &a[6] #assert(type_of(p) == #soa^#soa[16]Foo) p^.x = 123 p.x = 123
* Fix #1930gingerBill2022-08-051-0/+3
|
* Fix #1793gingerBill2022-07-241-1/+7
|
* Fix and improve `x->y()` behaviour to minimize duplicate evaluationgingerBill2022-07-241-3/+31
|
* Integrate numerous debug fixes from #1877gingerBill2022-07-181-11/+0
|
* Fix #1836gingerBill2022-07-161-3/+6
|
* Fix #1880gingerBill2022-07-161-1/+9
|
* Fix #1888gingerBill2022-07-161-10/+28
|
* Improve vector comparison `==` `!=` for horizontal reductiongingerBill2022-05-281-10/+29
|
* Add arithmetic operator support for simd vectors; Add `intrinsics.simd_and_not`gingerBill2022-05-261-1/+39
|
* Remove need for `simd.splat`gingerBill2022-05-261-27/+45
|
* Correct casting between integer and boolean #simdgingerBill2022-05-251-1/+4
|
* Allow for non-constant simd vector compound typesgingerBill2022-05-251-0/+96
|
* Allow basic casting of simd vectorsgingerBill2022-05-251-0/+32
|
* Fix issue #1592 "LLVM code gen error when using a constant in an if"gitlost2022-03-181-2/+2
| | | | | | | Changes lb_build_if_stmt() to return null lbValue if condition is cmpAnd, cmpOr or non-const neg and check in lb_build_if_stmt() to avoid short circuiting if that's the case Adds test to "tests/issues" and adds step in CI to check this dir
* Merge branch 'master' into freestanding_amd64gingerBill2022-03-141-0/+15
|\
| * Fix #1607gingerBill2022-03-091-0/+15
| |
* | Commit rest of code for `-disallow-rtti`gingerBill2022-02-281-3/+14
|/
* Correct pseudo selector code generationgingerBill2022-02-151-4/+5
|
* Add more objc attributesgingerBill2022-02-111-1/+10
|
* Support rank-2 arrays (matrix-like) for `transpose`gingerBill2022-02-061-0/+21
|
* Correct implicit union castgingerBill2022-02-051-0/+9
|
* Add `#no_type_assert` and `#type_assert` to disable implicit type assertions ↵gingerBill2022-01-271-31/+41
| | | | with `x.(T)`