aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Basic fmt printing for `map`gingerBill2022-11-071-8/+6
|
* Begin work on implementing the new `map` internalsgingerBill2022-11-071-47/+63
|
* Add debug symbols for global constants of integers, bools, enums, runes, & ↵gingerBill2022-11-021-0/+27
| | | | | | pointers. Variables are namespaced with `pkg::name` or `name` if built-in or the initial package for convenience.
* Optimize `#caller_location` and `#location` to use read only data section ↵gingerBill2022-10-311-2/+2
| | | | where possible
* Clean up private internal constant global handlinggingerBill2022-09-221-5/+1
|
* Correct parapoly determination of generated internal type of a `map`gingerBill2022-09-221-1/+0
|
* Remove more dead code for map header stuffgingerBill2022-09-211-34/+8
|
* Remove header cache codegingerBill2022-09-211-25/+0
|
* Remove debug codegingerBill2022-09-211-4/+0
|
* Reduce unnecessary map getsgingerBill2022-09-211-12/+63
|
* Split header table data and the map pointergingerBill2022-09-211-19/+34
|
* Temporary patch for `lb_gen_map_header`gingerBill2022-09-211-39/+53
|
* Use a cache when generating the map header to minimize stack wastagegingerBill2022-09-171-37/+47
|
* Change `__dynamic_map_get` and `__dynamic_map_set` to use separate ↵gingerBill2022-09-171-14/+11
| | | | parameters rather than take a singular struct
* Enforce constant pointer cast on global procedure variable initialization `x ↵gingerBill2022-09-171-0/+3
| | | | := proc() {}`
* Revert "Just get the value directly and store it in another global variable"gingerBill2022-09-141-22/+3
| | | | This reverts commit 190c3ab0cdc031e45d450e64715452fb2e576d1e.
* Just get the value directly and store it in another global variablegingerBill2022-09-141-3/+22
| | | | | // global x := &Foo{}
* Add inline debug generation for assembly target flag (#2028)gingerBill2022-09-071-1/+1
|
* Fix #1999Jeroen van Rijn2022-09-031-0/+1
| | | | Tested on Windows and Linux.
* Revert "Remove debug message"gingerBill2022-08-161-10/+2
| | | | | | | | | | | | 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.
* Remove debug messagegingerBill2022-08-121-4/+0
|
* Correct global constant procedure initializationgingerBill2022-08-121-0/+12
|
* Clean up how procedures are typed in LLVM's dumb type systemgingerBill2022-08-121-2/+2
|
* Eliminate use of LLVMGetElementType for pointersgingerBill2022-08-091-2/+2
|
* Removed use of deprecated functions. Cleaned up most deprecated use of ↵Christoffer Lerno2022-08-071-6/+5
| | | | LLVMGetElementType.
* `@(require_target_feature=<string>)` `@(enable_target_feature=<string>)`gingerBill2022-05-301-2/+2
| | | | | require_target_feature - required by the target micro-architecture enable_target_feature - will be enabled for the specified procedure only
* Add `@(priority_index=<int>)` for `foreign import`gingerBill2022-05-041-0/+7
|
* Make the link order of foreign imports deterministicgingerBill2022-05-041-18/+37
|
* Compiler: Add early error for output path being a directory.Jeroen van Rijn2022-04-241-2/+12
| | | | | | | | | | | | - 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.
* Merge pull request #1505 from jasonKercher/fix_odin_testgingerBill2022-03-141-3/+7
|\ | | | | fix `odin test`
| * Merge remote-tracking branch 'upstream/master' into fix_odin_testJason Kercher2022-03-091-0/+5
| |\
| * | improve entry point check logicCiD-2022-02-171-3/+2
| | |
| * | fix odin testCiD-2022-02-161-0/+5
| | |
* | | Merge branch 'master' into freestanding_amd64gingerBill2022-03-141-0/+4
|\ \ \ | | |/ | |/|
| * | openbsd: defaults to PIE executableSébastien Marie2022-02-281-0/+5
| |/ | | | | | | | | | | OpenBSD uses PIE code by default to allow the system to load the binary at a random location. don't pass -no-pie to preserve this behaviour, and build objects with -fPIC (LLVMRelocPIC).
* | `-target-features:<string>`gingerBill2022-02-281-0/+4
| | | | | | | | This just passes a string directly to the LLVM features string
* | Add extra checks for -disallow-rttigingerBill2022-02-281-2/+7
| |
* | Commit rest of code for `-disallow-rtti`gingerBill2022-02-281-1/+5
| |
* | Change target name to `freestanding_amd64_sysv`gingerBill2022-02-231-2/+2
| |
* | Add help docs for `-reloc-mode:<string>`gingerBill2022-02-231-0/+2
| |
* | Add `-reloc-mode:<string>`gingerBill2022-02-201-0/+14
| |
* | Add `freestanding_amd64_gnu`gingerBill2022-02-201-0/+13
|/
* Add new objc intrinsics: objc_(register|find)_(selector|class)gingerBill2022-02-141-2/+3
|
* Begin work on support objc intrinsicsgingerBill2022-02-081-2/+57
|
* Remove `main` creation in llvm_backend.cpp and have it done purely in the ↵gingerBill2022-01-151-6/+1
| | | | runtime package (partial bootstrapping)
* Rename architecture `386` to `i386`gingerBill2022-01-151-2/+2
|
* Correct `_start` as an entry pointgingerBill2022-01-151-7/+10
|
* Correct linkage for entry point procedures on WindowsgingerBill2022-01-121-12/+11
|
* Correct look for entry point in llvm backend (Windows only currently)gingerBill2022-01-121-14/+5
|
* Begin work to move entry point code to Odin itself rather than in C++ sidegingerBill2022-01-121-5/+10
|