aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_abi.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into compiler-improvements-2022-12gingerBill2022-12-211-1/+1
|\
| * Change the order of the args and ret for Arm64 ABIgingerBill2022-12-211-1/+1
| |
* | `gb_internal` LLVM backendgingerBill2022-12-181-77/+77
|/
* Naïve optimization of named _split_ multiple return valued when `defer` is ↵gingerBill2022-11-251-1/+3
| | | | | | | | | | 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).
* Make split multiple return logic only work for the native Odin calling ↵gingerBill2022-11-241-1/+11
| | | | conventions
* Add split multiple return to different ABIsgingerBill2022-11-241-43/+75
|
* Basic support for new ABI experiment on Win64gingerBill2022-11-231-21/+90
|
* Improve SysV ABI LLVM IR generation for development purposesgingerBill2022-10-301-1/+26
|
* Force call site attributes for procedures (relating to #2121 causing ABI ↵gingerBill2022-10-101-18/+18
| | | | issues for `intrinsics.objc_send`)
* Correct max alignment handling throughout the llvm backendgingerBill2022-08-241-1/+1
|
* Wrap all `LLVMGetElementType` usesgingerBill2022-08-091-8/+8
|
* Eliminate use of LLVMGetElementType for pointersgingerBill2022-08-091-2/+8
|
* Fix #1834gingerBill2022-07-241-7/+14
|
* Unify abi for wasm32 and the future wasm64gingerBill2022-05-211-7/+2
|
* Improve ABI design for wasm32 targetsgingerBill2022-05-211-18/+36
|
* Add basic arm32 ABI support (linux_arm32)gingerBill2022-05-011-0/+88
|
* Change target name to `freestanding_amd64_sysv`gingerBill2022-02-231-2/+2
|
* Add `freestanding_amd64_gnu`gingerBill2022-02-201-1/+3
|
* Allow sysv and win64 calling conventions to be used on any platform on amd64gingerBill2022-02-161-0/+6
|
* Rename architecture `386` to `i386`gingerBill2022-01-151-1/+1
|
* This adds code which checks how big the return is and if it is to big ↵Platin212021-12-271-1/+14
| | | | returns the value via sret
* Removes unneeded lookups / Adds sret to call site which fixes the mac bugPlatin212021-12-231-6/+6
|
* Modify ABI for the wasm32gingerBill2021-11-011-8/+51
|
* Add procs for wasm32gingerBill2021-10-311-0/+5
|
* Separate out the ABI for wasm32 from 386gingerBill2021-10-311-1/+65
|
* Begin work on supporting `wasm64`; Correct `wasm32` compilation behaviourgingerBill2021-10-301-4/+12
|
* Improve use of vector muladd operationsgingerBill2021-10-251-1/+12
|
* Correct ABI for windows with LLVMgingerBill2021-10-021-3/+3
|
* Replace many uses of `heap_allocator()` with `permanent_allocator()`gingerBill2021-09-131-6/+6
|
* Add sanity casts for 32/64 bit correctnessgingerBill2021-07-121-4/+4
|
* Improve vector arithmetic generation for array programming operationsgingerBill2021-06-121-0/+1
|
* Replace `js_wasm32` with `freestanding_wasm32`gingerBill2021-06-081-1/+1
|
* Modify ABI for the Odin calling conventions on SysV slightlygingerBill2021-05-221-30/+14
|
* Minor ABI change and cleanupgingerBill2021-05-171-2/+2
|
* Remove unneeded assertgingerBill2021-05-111-1/+0
|
* Add `byval` with `align`, `sret` attributes for SysVgingerBill2021-05-111-12/+27
|
* Improve SysV ABIgingerBill2021-05-111-21/+41
|
* Correct SysV ABI for `-> (f32, bool)`gingerBill2021-05-101-0/+5
|
* Remove non-InContext type creationsgingerBill2021-05-031-104/+0
|
* Implement `f16` functionalitygingerBill2021-04-011-0/+8
|
* Fix some LLVM asserts by using LLVMConstNamedStruct everywheregingerBill2021-03-191-14/+14
|
* Clean up `lb_end_procedure_body` logicgingerBill2021-03-021-1/+1
|
* Patch win64 ABI problem caused by a bug in LLVM for 128 bit integersgingerBill2021-03-011-1/+6
|
* Make lb_create_enum_attribute ignore certain attributes (they are not ↵gingerBill2021-02-251-11/+4
| | | | properly supported by the actual LLVM C API)
* Remove sret attribute in llvm_abi.cppgingerBill2021-02-251-4/+13
|
* Get compiling on Mac Mini M1gingerBill2021-02-241-3/+3
|
* Begin work on aarch64 ABI for `-llvm-api`gingerBill2021-02-241-3/+178
|
* Remove `"pure"` and `"pure_none"` calling conventionsgingerBill2021-02-231-1/+0
|
* Add comparisons to structs where all fields are comparable `==` and `!=`gingerBill2020-11-231-50/+10
|
* Re-enable `zeroext` for `i1`gingerBill2020-11-221-4/+3
|