aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_stmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
* `for in string16`; Support `string16` across coregingerBill2025-08-021-1/+120
|
* fix swizzle in for in statementLaytan Laats2025-06-021-3/+15
| | | | Fixes #1730
* fix global and static anyLaytan Laats2025-05-171-21/+31
| | | | Fixes #4627
* Add debug info for labels (#4385)tf2spi2025-05-151-5/+67
| | | | | | | | | | | | | | | | | | | | | | | * Emit label debug info w/o location * Insert debug label call * Slight refactor for later fix * Improve debug labels for block statements * Improve debug info with for loops * Generate label lbBlocks w/ debug * Lightly refactor lb_add_debug_label * Revise comments, add null check assertion * Use LLVM-C API for debug labels * Prefer C DILabel API for POSIX, fallback to CPP * Use version check for LLVM-C DILabel
* CleanupLucas Perlind2025-05-071-12/+8
|
* Add asan support for various allocatorsLucas Perlind2025-05-061-0/+16
|
* Add missing cast to global/static var alignments.Barinzaya2025-04-241-1/+1
|
* Correctly align global and static variables.Barinzaya2025-04-241-0/+1
| | | | | | This can be important if matrices or SIMD vectors are being used in global or static variables, as otherwise it may result in crashes due to aligned instructions accessing misaligned variables.
* Propagate `@(link_section=<string>)` to nested declarationsgingerBill2025-04-081-2/+1
|
* Fix #4803gingerBill2025-03-071-1/+5
|
* Implemented `#reverse` for `for in bit_set`.Barinzaya2025-03-021-1/+10
|
* Re-implemented `for` on `bit_set`s to use CTZ.Barinzaya2025-02-281-50/+22
| | | | | | This solution is both faster at run-time and a simpler implementation than the original solution, which required separate cases for enums and ranges.
* Canonicalize generated proceduresgingerBill2025-02-241-2/+0
|
* Work on making name mangling deterministicgingerBill2025-02-171-1/+2
|
* `#unroll(N) for`gingerBill2025-01-101-56/+185
|
* Add `#branch_location`gingerBill2025-01-011-29/+52
|
* properly keep track of current scope for debuggingLaytan Laats2024-11-271-0/+6
| | | | Fixes #4519
* Avoid member access through nullptr in debugbobsayshilol2024-10-271-8/+11
| | | | | | | | | | If |result_count| is 0 then |results| will be a nullptr and hence the access |results->Tuple| is undefined behaviour. There's already an early return in the 0 branch so move that to be the first thing so that we can guarantee that it's not a nullptr. Note that technically we take the address of the result so it's not actually dereferencing it, however UBSan doesn't care about that.
* check packed load and set alignment on all loads, not just lb_emit_loadLaytan Laats2024-10-251-1/+1
|
* "fix" #4169, looks like llvm 14 bugLaytan2024-08-311-2/+1
|
* Fix #4156gingerBill2024-08-311-0/+4
|
* Fix `switch val in ptr`gingerBill2024-08-191-3/+3
|
* Move assert to `else` branchgingerBill2024-08-181-3/+8
|
* fix type switching over internal pointer unionLaytan Laats2024-08-121-1/+1
| | | | Fixes #3947
* Fix `case:` in type switch issuegingerBill2024-07-151-2/+9
|
* Fix `lb_store_type_case_implicit`gingerBill2024-07-041-1/+2
|
* Allow `@(rodata)` on `@(static)` variablesgingerBill2024-06-061-1/+3
|
* Fix #3586gingerBill2024-05-141-20/+21
|
* Generalize Odin call-based "iterators" to work with more than 2-values: `for ↵gingerBill2024-04-271-9/+44
| | | | | | x, y, z, w in iterate(&it)` It has an artificial limitation of 100 values because if you need for than that, you're doing something wrong.
* Support `for in` with `bit_set`gingerBill2024-04-011-7/+87
|
* Fix `case:` bug with by-ref unionsgingerBill2024-03-181-5/+6
|
* Make `lb_type_info` use a procedure to load the global valuegingerBill2024-02-271-1/+1
|
* Fix divergent proc call in `defer`Laytan Laats2024-02-211-4/+17
| | | | | Fixes #3216 Fixes #2985
* Improve returning a struct directly for certain ABIs; reuse the temp callee ↵gingerBill2023-11-241-3/+19
| | | | return struct memory when needed
* Go through loads of `TODO`sgingerBill2023-08-011-4/+1
|
* Add extra mutex guards around module value accessgingerBill2023-07-071-0/+8
|
* `for &e, i in array` and `for k, &v in map` (alternative to passing the ↵gingerBill2023-06-261-34/+54
| | | | iterable by pointer)
* Merge pull request #2552 from jcmoyer/fix-2466gingerBill2023-06-081-0/+1
|\ | | | | Use compound literal storage for ValueDecl lvals
| * Use compound literal storage for ValueDecl lvalsJ.C. Moyer2023-05-211-0/+1
| | | | | | | | | | | | | | | | Prior to this commit, if a variable was initialized using a compound literal, its associated storage would not be set. This commit makes the variable always take on the storage of the compound literal. Fixes #2466
* | Fix non-constant compound literals of slicesgingerBill2023-06-071-0/+1
| |
* | Merge branch 'master' into separate-int-word-sizesgingerBill2023-06-061-46/+206
|\ \
| * | Minor change to `#reverse for` logic; add comments explaining itgingerBill2023-05-301-24/+103
| | |
| * | Support `#reverse` for stringsgingerBill2023-05-291-18/+48
| | |
| * | Support `#reverse` on `#soa` arraysgingerBill2023-05-291-9/+32
| | |
| * | Basic support for `#reverse for in` on normal arraysgingerBill2023-05-291-18/+46
| |/
* / Rename `word_size` to `ptr_size` internally to make it clearergingerBill2023-04-201-1/+1
|/
* Simplify copy elision on variable declarationsgingerBill2023-03-161-31/+33
|
* Allow `case nil` within a type switch statement (experimental idea)gingerBill2023-03-121-5/+14
|
* Fix range loop `&` vals debug infogingerBill2023-03-091-0/+1
|
* Fix debug symbols for range loopsgingerBill2023-03-091-9/+0
|