| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | reorganize tests and handle endian | Laytan Laats | 2025-02-06 | 1 | -8/+5 |
| | | |||||
| * | apply abs fix to constant system too | Laytan Laats | 2025-02-06 | 1 | -3/+3 |
| | | |||||
| * | improve abs() on floats for more correct and faster results | Laytan Laats | 2025-02-05 | 1 | -0/+28 |
| | | |||||
| * | Add `#branch_location` | gingerBill | 2025-01-01 | 1 | -1/+5 |
| | | |||||
| * | compiler: remove viral `#force(_no)_inline` | Laytan Laats | 2024-12-09 | 1 | -4/+0 |
| | | | | | | | | | | | | | | If a procedure was marked `#force_no_inline`, any procedure calls within it would also implicitly be. This is not expected for multiple reasons: 1. `#force(_no)_inline` on a call expr works differently than on a procedure literal. 2. Adding the attribute on it and every called proc blows up the amount of work for the inliner pass and may increase the time it takes. 3. Putting `#force_no_inline` on a procedure to keep executable size down (like we do for some map procedures), benchmark it, or find it in asm/ir has the added effect of slowing those procedures down significantly and not representing truth. | ||||
| * | ABI change: for indirect parameters size_of <= 16, do callee stack copy | gingerBill | 2024-12-05 | 1 | -0/+19 |
| | | |||||
| * | check packed load and set alignment on all loads, not just lb_emit_load | Laytan Laats | 2024-10-25 | 1 | -3/+2 |
| | | |||||
| * | add '#caller_expression' | Laytan Laats | 2024-09-14 | 1 | -5/+57 |
| | | |||||
| * | add support for linux_riscv64 and freestanding_riscv64 | Laytan | 2024-08-20 | 1 | -0/+25 |
| | | |||||
| * | fix c_vararg bit_set | Laytan Laats | 2024-08-11 | 1 | -5/+5 |
| | | | | | Fixes #4051 | ||||
| * | Swap `reduce_any` and `reduce_all` | Feoramund | 2024-08-06 | 1 | -2/+2 |
| | | | | | | `llvm.vector.reduce.or` will return true if any lane is true. `llvm.vector.reduce.and` will return true if all lanes are true. | ||||
| * | Add `intrinsics.masked_expand_load` and `intrinsics.masked_compress_store` | gingerBill | 2024-08-05 | 1 | -6/+28 |
| | | |||||
| * | Remove dead code | gingerBill | 2024-08-05 | 1 | -1/+0 |
| | | |||||
| * | Add `intrinsics.simd_masked_load` and `intrinsics.simd_masked_store` | gingerBill | 2024-08-05 | 1 | -3/+15 |
| | | |||||
| * | Add `intrinsics.simd_gather` and ``intrinsics.simd_scatter` | gingerBill | 2024-08-05 | 1 | -0/+46 |
| | | |||||
| * | Rename `add_sat` -> `saturating_add` | gingerBill | 2024-08-05 | 1 | -10/+10 |
| | | |||||
| * | Add `simd_reduce_any` and `simd_reduce_all` | gingerBill | 2024-08-05 | 1 | -0/+17 |
| | | |||||
| * | type is never a tuple here | Laytan Laats | 2024-07-16 | 1 | -3/+0 |
| | | |||||
| * | fix `add_sat` and `sub_sat` intrinsics | Laytan Laats | 2024-07-16 | 1 | -6/+36 |
| | | |||||
| * | Add intrinsics `add_sat` and `sub_sat` | gingerBill | 2024-07-16 | 1 | -0/+6 |
| | | |||||
| * | Begin work for `bit_set[...; [N]T]` (not working) | gingerBill | 2024-07-15 | 1 | -0/+5 |
| | | |||||
| * | Generate backing array in the case where there is no `DeclInfo` for the ↵ | gingerBill | 2024-07-15 | 1 | -6/+10 |
| | | | | | procedure body | ||||
| * | Add `slice` variable if not exists | gingerBill | 2024-07-14 | 1 | -0/+4 |
| | | |||||
| * | Reuse the slice value too for variadic parameters (LLVM >= 13) | gingerBill | 2024-07-14 | 1 | -0/+11 |
| | | |||||
| * | Calculate size and alignment, and reuse memory for all variadic calls within ↵ | gingerBill | 2024-07-14 | 1 | -8/+17 |
| | | | | | a procedure body | ||||
| * | Reuse slice variable for variadic parameters | gingerBill | 2024-07-14 | 1 | -2/+6 |
| | | |||||
| * | Restrict `#no_capture` to pointer-like types only | gingerBill | 2024-07-14 | 1 | -1/+3 |
| | | |||||
| * | Make `#no_capture` map to `nocapture` | gingerBill | 2024-07-14 | 1 | -0/+3 |
| | | |||||
| * | Mock out `#no_capture` for future use | gingerBill | 2024-07-14 | 1 | -19/+13 |
| | | |||||
| * | Add `#no_capture args: ..T` to reuse the backing array stack memory | gingerBill | 2024-07-14 | 1 | -1/+26 |
| | | |||||
| * | remove misleading `@(optimization_mode)` values and make "none" inhibit ↵ | Laytan Laats | 2024-07-08 | 1 | -7/+1 |
| | | | | | optimizations | ||||
| * | disallow non-global foreign import of variables on wasm | Laytan Laats | 2024-06-28 | 1 | -1/+1 |
| | | |||||
| * | Add `intrinsics.syscall_bsd` | Feoramund | 2024-06-12 | 1 | -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 inits | Laytan Laats | 2024-06-09 | 1 | -3/+2 |
| | | | | | Fixes #3630 | ||||
| * | fix passing pointer to constant in non-odin cc | laytan | 2024-06-04 | 1 | -9/+1 |
| | | |||||
| * | Merge pull request #3570 from jasonKercher/linux-arm32 | gingerBill | 2024-05-20 | 1 | -2/+2 |
| |\ | | | | | Get the compiler to build and work on arm32 Linux | ||||
| | * | arm32 now compiles and runs demo | jasonkercher | 2024-05-10 | 1 | -2/+2 |
| | | | |||||
| * | | Fix `intrinsics.ptr_sub` | gingerBill | 2024-05-19 | 1 | -2/+3 |
| | | | |||||
| * | | fix 6 argument syscall on i386 | jason | 2024-05-10 | 1 | -8/+2 |
| |/ | |||||
| * | compiler: improve target features support | Laytan Laats | 2024-05-02 | 1 | -10/+17 |
| | | |||||
| * | fix direct proc args debug info | Laytan Laats | 2024-04-22 | 1 | -11/+2 |
| | | |||||
| * | fix wasm atomics | Laytan Laats | 2024-04-06 | 1 | -10/+5 |
| | | | | | Fixes #2745 | ||||
| * | fix lbArg_Ignore logic | Laytan Laats | 2024-04-04 | 1 | -1/+5 |
| | | | | | Fixes #2698 | ||||
| * | fix untyped nil into c varargs | Laytan Laats | 2024-04-02 | 1 | -0/+6 |
| | | | | | Fixes #2842 | ||||
| * | fix named arguments with #c_vararg | Laytan Laats | 2024-04-02 | 1 | -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) | gingerBill | 2024-03-06 | 1 | -4/+2 |
| | | |||||
| * | Merge pull request #3220 from laytan/promote-types-in-c-varargs | gingerBill | 2024-02-28 | 1 | -2/+2 |
| |\ | | | | | Promote types in `#c_varargs` according to C rules | ||||
| | * | Promote types in `#c_varargs` according to C rules | Laytan Laats | 2024-02-21 | 1 | -2/+2 |
| | | | |||||
| * | | Make `lb_type_info` use a procedure to load the global value | gingerBill | 2024-02-27 | 1 | -1/+1 |
| |/ | |||||
| * | Add `#load_directory(path: string) > []runtime.Load_Directory_File` | gingerBill | 2024-02-09 | 1 | -15/+52 |
| | | |||||