aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_proc.cpp
Commit message (Collapse)AuthorAgeFilesLines
* type is never a tuple hereLaytan Laats2024-07-161-3/+0
|
* fix `add_sat` and `sub_sat` intrinsicsLaytan Laats2024-07-161-6/+36
|
* Add intrinsics `add_sat` and `sub_sat`gingerBill2024-07-161-0/+6
|
* Begin work for `bit_set[...; [N]T]` (not working)gingerBill2024-07-151-0/+5
|
* Generate backing array in the case where there is no `DeclInfo` for the ↵gingerBill2024-07-151-6/+10
| | | | procedure body
* Add `slice` variable if not existsgingerBill2024-07-141-0/+4
|
* Reuse the slice value too for variadic parameters (LLVM >= 13)gingerBill2024-07-141-0/+11
|
* Calculate size and alignment, and reuse memory for all variadic calls within ↵gingerBill2024-07-141-8/+17
| | | | a procedure body
* Reuse slice variable for variadic parametersgingerBill2024-07-141-2/+6
|
* Restrict `#no_capture` to pointer-like types onlygingerBill2024-07-141-1/+3
|
* Make `#no_capture` map to `nocapture`gingerBill2024-07-141-0/+3
|
* Mock out `#no_capture` for future usegingerBill2024-07-141-19/+13
|
* Add `#no_capture args: ..T` to reuse the backing array stack memorygingerBill2024-07-141-1/+26
|
* remove misleading `@(optimization_mode)` values and make "none" inhibit ↵Laytan Laats2024-07-081-7/+1
| | | | optimizations
* disallow non-global foreign import of variables on wasmLaytan Laats2024-06-281-1/+1
|
* Add `intrinsics.syscall_bsd`Feoramund2024-06-121-44/+134
| | | | | | This is a BSD-style syscall that checks for a high Carry Flag as the error state. If the CF is high, the boolean return value is false, and if it is low (no errors) then the boolean return value is true.
* fix unreachable hit when param and/or return have complex initsLaytan Laats2024-06-091-3/+2
| | | | Fixes #3630
* fix passing pointer to constant in non-odin cclaytan2024-06-041-9/+1
|
* Merge pull request #3570 from jasonKercher/linux-arm32gingerBill2024-05-201-2/+2
|\ | | | | Get the compiler to build and work on arm32 Linux
| * arm32 now compiles and runs demojasonkercher2024-05-101-2/+2
| |
* | Fix `intrinsics.ptr_sub`gingerBill2024-05-191-2/+3
| |
* | fix 6 argument syscall on i386jason2024-05-101-8/+2
|/
* compiler: improve target features supportLaytan Laats2024-05-021-10/+17
|
* fix direct proc args debug infoLaytan Laats2024-04-221-11/+2
|
* fix wasm atomicsLaytan Laats2024-04-061-10/+5
| | | | Fixes #2745
* fix lbArg_Ignore logicLaytan Laats2024-04-041-1/+5
| | | | Fixes #2698
* fix untyped nil into c varargsLaytan Laats2024-04-021-0/+6
| | | | Fixes #2842
* fix named arguments with #c_varargLaytan Laats2024-04-021-0/+21
| | | | | | | | | Previously `args=1`, `args={}`, `args={1, 2, 3}` would all crash the compiler. Now it passes them correctly, and if given a compound literal, the values are expanded into the call so you can use a named arg while passing multiple values. Fixes #3168
* Unify min/max semantics for simd_(min|max)gingerBill2024-03-061-4/+2
|
* Merge pull request #3220 from laytan/promote-types-in-c-varargsgingerBill2024-02-281-2/+2
|\ | | | | Promote types in `#c_varargs` according to C rules
| * Promote types in `#c_varargs` according to C rulesLaytan Laats2024-02-211-2/+2
| |
* | Make `lb_type_info` use a procedure to load the global valuegingerBill2024-02-271-1/+1
|/
* Add `#load_directory(path: string) > []runtime.Load_Directory_File`gingerBill2024-02-091-15/+52
|
* Remove dead codegingerBill2024-01-281-3/+3
|
* Implement instrumentation passgingerBill2024-01-071-0/+12
|
* Fix `builtin.quaternion` generationgingerBill2024-01-051-1/+1
|
* Enforce naming the parameters with `builtin.quaternion` to reduce confusiongingerBill2024-01-051-13/+30
|
* Fix #3056korvahkh2023-12-291-1/+1
|
* Fix-up inline asm for i386 syscalls emitflysand72023-10-301-1/+1
|
* llvm: specify calling convention on callMorten Hauke Solvang2023-10-131-0/+3
| | | | | | | Looks like the compiler only was specifying the calling convention on function declarations, but not on function calls. But LLVM seems to produce "bad" code when optimizing with level -O2 unless you specify the same calling convention on the call too.
* Remove debug messagegingerBill2023-09-291-1/+0
|
* Rename simd bitwise operations from `intrinsics.simd_and` to ↵gingerBill2023-09-281-8/+8
| | | | `intrinsics.simd_bit_and` etc
* Fix `ptr != ptr` type cast problem in LLVM 17gingerBill2023-09-261-2/+15
|
* Fix build times for `-o:<string>` in LLVM-17gingerBill2023-09-211-2/+2
|
* Add attributes for sanitize_memory and sanitize_threadgingerBill2023-09-211-0/+6
|
* Add `sanitize_address` attribute to all normal packagesgingerBill2023-09-211-1/+6
|
* Fix read_cycle_counter intrinsic on arm64William Roe2023-08-071-1/+1
| | | | | | | Running this code with the hard-coded x9 register results in not returning the cycle count, but some other value. This code (using $0 as the register), works on arm64 Linux and Darwin.
* Remove #relative slices; Replace with #relative multi-pointersgingerBill2023-08-051-2/+2
|
* Fix #2699gingerBill2023-08-051-3/+9
|
* Go through loads of `TODO`sgingerBill2023-08-011-4/+1
|