aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.hpp
Commit message (Collapse)AuthorAgeFilesLines
* Update instrumentation signature to support `runtime.Source_Code_Location` ↵gingerBill2024-01-091-0/+2
| | | | as last parameter.
* Implement instrumentation passgingerBill2024-01-071-1/+1
|
* Improve returning a struct directly for certain ABIs; reuse the temp callee ↵gingerBill2023-11-241-0/+2
| | | | return struct memory when needed
* mem zero rather than store to a union where the variant is of size zerogingerBill2023-11-241-0/+1
|
* Only check LLVM_VERSION_MAJOR >= 17 for PassBuilder inclusionjcmdln2023-10-151-1/+1
|
* Support LLVM >=17.0.1 on Darwin and Linuxjcmdln2023-10-111-0/+4
|
* Add `or_break` and `or_continue` constructsgingerBill2023-09-301-0/+2
|
* Begin work on making the type info table be constantly initializedgingerBill2023-09-221-0/+11
|
* Update ABI breaking changes for `f16` types (due to LLVM 15+)gingerBill2023-09-211-0/+14
|
* Add `-o:aggressive` for LLVM 17gingerBill2023-09-211-0/+1
|
* Update to LLVM-17gingerBill2023-09-191-7/+3
|
* Remove #relative slices; Replace with #relative multi-pointersgingerBill2023-08-051-1/+0
|
* Move linker code into separate filegingerBill2023-07-241-9/+1
|
* Very start of working on Tilde Backend for OdingingerBill2023-07-141-0/+2
|
* Generalize name mangling rule to have a singular definition for a name separatordev-2023-07gingerBill2023-07-071-0/+2
|
* Fix a race condition when produced anonymous procedure literals with ↵gingerBill2023-06-131-1/+3
| | | | `-use-separate-modules`
* Make all id suffixes use atomics where possiblegingerBill2023-06-121-1/+1
|
* Merge branch 'master' into separate-int-word-sizesgingerBill2023-06-061-1/+1
|\
| * implement random map seedjason2023-05-161-1/+1
| |
* | Rename `word_size` to `ptr_size` internally to make it clearergingerBill2023-04-201-1/+1
|/
* Fix race condition with -use-separate-modules due to type determinationgingerBill2023-04-181-3/+5
|
* Add missing enumgingerBill2023-04-181-0/+1
|
* Simplify copy elision on variable declarationsgingerBill2023-03-161-2/+0
|
* Fix value elision on declarationgingerBill2023-03-091-0/+2
|
* Minimize stack wastage with compound literals defining variablesgingerBill2023-02-171-0/+2
|
* Implement `@(fini)` (opposite of `@(init)`)gingerBill2023-02-151-0/+2
|
* Minor change to `byval` for readonly parametersgingerBill2023-02-031-0/+1
|
* Add extra checks for multiple assignments when emitting storesgingerBill2023-01-271-0/+1
|
* Replace `BlockingMutex` with `RwMutex`gingerBill2023-01-161-1/+1
|
* Replace `RecursiveMutex` with a `BlockingMutex`gingerBill2023-01-161-1/+1
|
* Prepare for arbitrary separate modulesgingerBill2023-01-121-1/+2
|
* Begin to generalize modules away from `AstPackage *` in `-use-separate-modules`gingerBill2023-01-121-1/+1
|
* Fix macro issuegingerBill2023-01-111-1/+1
|
* Multi thread more of the backend where possiblegingerBill2023-01-051-0/+1
|
* Refactor llvm backend code into separate procedures to make it simpler to ↵gingerBill2023-01-051-1/+1
| | | | profile
* enum-ifiy function pass managers for `lbModule`gingerBill2023-01-051-0/+14
|
* Unify function pass managers for auxiliary procedures (e.g. startup type ↵gingerBill2023-01-051-0/+4
| | | | info, runtime, objc names)
* Begin multithreading the llvm backend when `-use-separate-modules` is enabledgingerBill2023-01-051-0/+3
|
* Remove unneeded `local_entity_map`gingerBill2023-01-021-1/+0
|
* Correct a race condition when checking the procedure bodygingerBill2023-01-021-0/+1
|
* `gb_internal` LLVM backendgingerBill2022-12-181-137/+137
|
* Replace compiler for loops for the hash-table types to simplify code usagegingerBill2022-12-091-0/+1
|
* Naïve optimization of named _split_ multiple return valued when `defer` is ↵gingerBill2022-11-251-1/+1
| | | | | | | | | | 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).
* Basic copy elision support for multiple return valuesgingerBill2022-11-241-0/+6
|
* Remove copy elision codegingerBill2022-11-221-13/+1
|
* Fix prototypegingerBill2022-11-131-1/+1
|
* Begin work on map static setgingerBill2022-11-111-1/+2
|
* Correct static map get; make get take a pointer to simplify compiler internalsgingerBill2022-11-101-2/+2
|
* Allow for `-use-static-map-calls` which generates a get procedure per `map`; ↵gingerBill2022-11-081-0/+1
| | | | add `runtime.map_get`
* Add `intrinsics.map_cell_info` and `intrinsics.map_info`gingerBill2022-11-081-0/+1
|