aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Convert constant tag to the correct type for LLVMAddCasegingerBill2021-07-101-0/+1
|
* Prepare for multithreading the semantic checker by giving mutexes to ↵gingerBill2021-07-101-1/+1
| | | | | | variables of contention NOTE(bill): I know this is dodgy, but I want to make sure it is correct logic before improve those data structures
* Fix #1050gingerBill2021-07-101-1/+1
|
* Allow `x in ptr_to_map_or_bit_set`gingerBill2021-07-101-0/+5
|
* Remove `try`; Replace `try x else y` with `or_else(x, y)`gingerBill2021-07-051-52/+47
|
* Try `try` and `or_else` built-in procedures with operators `try` and `try else`gingerBill2021-07-041-100/+55
|
* Refactor `return` logic to be more reusable with `lb_emit_try`gingerBill2021-07-041-44/+24
|
* Simplify `lb_emit_try` return logicgingerBill2021-07-041-88/+18
|
* Fix `lb_emit_try`gingerBill2021-07-041-9/+13
|
* [Experimental] Add 'try' and `or_else' built-in proceduresgingerBill2021-07-041-6/+270
|
* Fix #1042gingerBill2021-06-281-19/+21
|
* Fix #1043gingerBill2021-06-281-0/+3
|
* Fix swizzling of pointers to arraysgingerBill2021-06-281-2/+7
|
* Modify scope finding rules for distinct types in lb_debug_typegingerBill2021-06-271-3/+23
|
* Fix #1044gingerBill2021-06-261-4/+17
|
* Support compound literals for `struct #raw_union` typesgingerBill2021-06-261-2/+12
|
* Fix compiler errorsgingerBill2021-06-251-3/+3
|
* Change logic for comparison against `nil` for array-like data types (compare ↵gingerBill2021-06-241-12/+27
| | | | the pointer rather than the length/capacity)
* Correct selector call expression chaining behaviour (a bit of a hack)gingerBill2021-06-161-9/+28
|
* Fix #1017gingerBill2021-06-151-4/+7
|
* Fix #1019gingerBill2021-06-151-2/+0
|
* Fix #1015gingerBill2021-06-141-11/+15
|
* Just create `context` when requiredgingerBill2021-06-141-16/+1
|
* Fix `context` logicgingerBill2021-06-131-3/+3
|
* Remove dead codegingerBill2021-06-121-22/+0
|
* Correct `context `logic in `lb_build_addr`gingerBill2021-06-121-1/+1
|
* Improve vector arithmetic generation for array programming operationsgingerBill2021-06-121-72/+215
|
* Fix linkage problem for procedures required by LLVMgingerBill2021-06-101-9/+18
|
* Minor code clean upgingerBill2021-06-091-11/+4
|
* Improve code generation for type switch statements to use a jump table by ↵gingerBill2021-06-091-26/+35
| | | | default
* Allow trivial optimizations for switch statements of `typeid`gingerBill2021-06-091-9/+21
|
* Do trivial SwitchInstr optimization for constant case switch statementsgingerBill2021-06-091-6/+93
|
* Correct minimum dependency for `complex32`gingerBill2021-06-081-10/+22
|
* Improve code generation hints for return statements which return by pointergingerBill2021-06-081-7/+35
|
* Minor alignment cleanup for swizzle loadgingerBill2021-06-081-1/+10
|
* Fix and improve swizzle loads for ordered indicesgingerBill2021-06-081-1/+17
|
* Minor improvements to `-use-separate-modules`gingerBill2021-06-081-6/+25
|
* Replace `js_wasm32` with `freestanding_wasm32`gingerBill2021-06-081-17/+19
|
* Fix `lb_build_defer_stmt`gingerBill2021-06-081-0/+3
|
* Correct code for `#simd` in unionsgingerBill2021-06-061-9/+14
|
* Fix #861 - Add extra check on missing `main`gingerBill2021-06-061-2/+4
|
* Fix 128-bit integer to float cast by explicitly calling the procedure ↵gingerBill2021-06-061-0/+11
| | | | direct; Fix #781
* Add support for `Addressing_OptionalOkPtr`gingerBill2021-06-061-90/+191
| | | | Allowing for `i, ok := &x.(T);` (type assertions) and `v, ok := &m[k];` (map indexing)
* Clean up lbAddr_Swizzle logic for load and storegingerBill2021-06-051-47/+73
|
* Use `shufflevector` when possible for lbAddr_Swizzle loadgingerBill2021-06-051-0/+39
|
* Improved `lb_build_assign_stmt_array` logicgingerBill2021-06-051-16/+36
|
* Fix `lb_build_assign_stmt_array` for `lbAddr_Swizzle`gingerBill2021-06-051-1/+28
|
* Experimental support for inline swizzling for array types of len <= 4 e.g. ↵gingerBill2021-06-051-56/+61
| | | | `v.xyz`, `v.argb`, `v.xxx`
* Make inline array arithmetic use `load+extractvalue` rather than ↵dev-2021-06gingerBill2021-06-011-7/+42
| | | | `getelementptr+load` to give the optimizer a better hint for vectorization
* Improves to array arithmetic on += etc assignment statementsgingerBill2021-06-011-68/+218
|