aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove extra pointer indirectiongingerBill2022-09-271-2/+2
|
* Override lbArgKind to be indirect for `#by_ptr` parametersgingerBill2022-09-271-0/+11
|
* Clean up private internal constant global handlinggingerBill2022-09-221-16/+18
|
* Reduce unnecessary map getsgingerBill2022-09-211-16/+4
|
* Change `__dynamic_map_get` and `__dynamic_map_set` to use separate ↵gingerBill2022-09-171-21/+20
| | | | parameters rather than take a singular struct
* Revert "Just get the value directly and store it in another global variable"gingerBill2022-09-141-10/+5
| | | | This reverts commit 190c3ab0cdc031e45d450e64715452fb2e576d1e.
* Just get the value directly and store it in another global variablegingerBill2022-09-141-5/+10
| | | | | // global x := &Foo{}
* Fix #2029 Eumerated array of procs literal crashes the compiler with an llvm ↵gingerBill2022-09-071-22/+7
| | | | error
* Correct max alignment handling throughout the llvm backendgingerBill2022-08-241-1/+4
|
* Revert "Remove debug message"gingerBill2022-08-161-6/+48
| | | | | | | | | | | | This reverts commit 22d16c20f8e446fb51d7faa14f22b9f86df8b393. Revert "Correct global constant procedure initialization" This reverts commit 697c839c84b36b4e0c12ac9ea264e28f564ef5d5. Revert "Clean up how procedures are typed in LLVM's dumb type system" This reverts commit de8bd88d2a6f0e99af6fe76442bcccd159724872.
* Merge pull request #1944 from odin-lang/load-improvementsgingerBill2022-08-151-0/+48
|\ | | | | Improvements to `#load`
| * `#load(path, type)`gingerBill2022-08-111-0/+48
| | | | | | | | where `type` can be `string` or `[]T` where `T` is a simple type
* | Correct global constant procedure initializationgingerBill2022-08-121-7/+0
| |
* | Clean up how procedures are typed in LLVM's dumb type systemgingerBill2022-08-121-41/+6
| |
* | Improve compound literal generation for array-like typesgingerBill2022-08-111-1/+2
| |
* | Improve emit store for large constantsgingerBill2022-08-111-10/+36
|/
* General clean up of LLVM*GEP2 codegingerBill2022-08-101-0/+39
|
* Wrap all `LLVMGetElementType` usesgingerBill2022-08-091-0/+11
|
* Remove other uses of LLVMGetElementType on pointer typesgingerBill2022-08-091-4/+8
|
* Minor change to `lb_emit_store` for storing nil to procedure variablesgingerBill2022-08-091-1/+3
|
* Eliminate use of LLVMGetElementType for pointersgingerBill2022-08-091-97/+113
|
* Merge pull request #1933 from lerno/reduce_reliance_on_ptr_typegingerBill2022-08-091-17/+16
|\ | | | | Removed use of deprecated functions. Cleaned up most deprecated use o…
| * Removed use of deprecated functions. Cleaned up most deprecated use of ↵Christoffer Lerno2022-08-071-17/+16
| | | | | | | | LLVMGetElementType.
* | Add `#soa` pointer type to aid with refactoring to `#soa` data typesgingerBill2022-08-081-0/+15
|/ | | | | | | | a: #soa[16]Foo p := &a[6] #assert(type_of(p) == #soa^#soa[16]Foo) p^.x = 123 p.x = 123
* Temp fix for `lb_emit_store`gingerBill2022-07-241-1/+1
|
* Force memset instead of store zeroinitializer when the value is largegingerBill2022-07-241-3/+9
|
* Add `#by_ptr` procedure attribute to enforce a parameter to be passed by ↵gingerBill2022-07-241-2/+3
| | | | pointer internally
* Integrate numerous debug fixes from #1877gingerBill2022-07-181-4/+4
|
* Fix #1869gingerBill2022-07-161-0/+7
|
* Change MAX_STORE_SIZEdev-2022-07gingerBill2022-06-301-2/+2
|
* Use `memmove` if possible when emitting store over a certain sizegingerBill2022-06-301-0/+20
|
* Minor style changegingerBill2022-06-121-1/+1
|
* Merge pull request #1395 from hdooley/mastergingerBill2022-06-121-8/+14
|\ | | | | factor out alloca generation into a helper
| * review feedbackHenry Dooley2021-12-281-1/+3
| |
| * cast isize to unsigned int for llvm api, add defaulted name parameter to helper.Henry Dooley2021-12-251-4/+4
| |
| * factor out alloca generation into a helperHenry Dooley2021-12-251-7/+11
| |
* | Make the link order of foreign imports deterministicgingerBill2022-05-041-2/+5
| |
* | Compiler: Add early error for output path being a directory.Jeroen van Rijn2022-04-241-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | - Introduce new `Path` type and an array of build paths on the build context. - Resolve input and output paths/files early (before parsing). - Error early if inputs are missing or outputs are directories. - Plumb new file path generation into linker stage instead of its adhoc method. TODO: - Remove more adhoc file path generation in parser and linker stage. - Make intermediate object file generation use new path system. - Round out and robustify Path helper functions.
* | Make constant string backing structures use PrivateLinkage compared to ↵gingerBill2022-03-241-3/+3
| | | | | | | | InternalLinkage
* | `union #shared_nil`gingerBill2022-03-241-3/+28
| | | | | | | | This adds a feature to `union` which requires all the variants to have a `nil` value and on assign to the union, checks whether that value is `nil` or not. If the value is `nil`, the union will be `nil` (thus sharing the `nil` value)
* | Fix issue #1592 "LLVM code gen error when using a constant in an if"gitlost2022-03-181-3/+12
| | | | | | | | | | | | | | Changes lb_build_if_stmt() to return null lbValue if condition is cmpAnd, cmpOr or non-const neg and check in lb_build_if_stmt() to avoid short circuiting if that's the case Adds test to "tests/issues" and adds step in CI to check this dir
* | Begin work on support objc intrinsicsgingerBill2022-02-081-1/+7
| |
* | avoid segfault on map resizeCiD-2022-01-261-1/+2
| |
* | Fix double map dereference indexinggingerBill2022-01-261-0/+4
|/
* Fix #1319gingerBill2021-11-191-3/+8
|
* Remove many LLVM optimization passes which were causes UB due to them ↵gingerBill2021-11-061-1/+1
| | | | assuming C-like behaviour incompatible with Odin
* Make llvm backend code use `PtrMap`; remove dead codegingerBill2021-11-051-31/+25
|
* `@(linkage=<string>)` for procedures and variables; `@(require)` for ↵gingerBill2021-11-041-0/+13
| | | | procedures; `package runtime` linkage improvements; Subsequence improvements to `lb_run_remove_unused_function_pass`
* Add `ODIN_LLVM_MINIMUM_VERSION_12`gingerBill2021-10-251-1/+1
|
* Update alignment rules for `matrix` types as a compromise to keep zero paddinggingerBill2021-10-251-2/+6
|