Commit Graph

490 Commits

Author SHA1 Message Date
gingerBill
0dce7769f4 Clean up private internal constant global handling 2022-09-22 00:18:03 +01:00
gingerBill
8c3f01fbfa Correct parapoly determination of generated internal type of a map 2022-09-22 00:05:11 +01:00
gingerBill
9b9aa9c353 Remove more dead code for map header stuff 2022-09-21 13:08:40 +01:00
gingerBill
831620bfc4 Remove header cache code 2022-09-21 13:06:02 +01:00
gingerBill
4f50988799 Remove debug code 2022-09-21 13:03:30 +01:00
gingerBill
ff97a73152 Reduce unnecessary map gets 2022-09-21 13:03:13 +01:00
gingerBill
1d793ea338 Split header table data and the map pointer 2022-09-21 12:09:05 +01:00
gingerBill
5337413c56 Temporary patch for lb_gen_map_header 2022-09-21 11:36:14 +01:00
gingerBill
0ebc2add03 Use a cache when generating the map header to minimize stack wastage 2022-09-17 12:56:03 +01:00
gingerBill
7840c1b89f Change __dynamic_map_get and __dynamic_map_set to use separate parameters rather than take a singular struct 2022-09-17 12:48:12 +01:00
gingerBill
117d32dfc4 Enforce constant pointer cast on global procedure variable initialization x := proc() {} 2022-09-17 10:26:57 +01:00
gingerBill
a3c04db828 Revert "Just get the value directly and store it in another global variable"
This reverts commit 190c3ab0cd.
2022-09-14 17:57:12 +01:00
gingerBill
190c3ab0cd Just get the value directly and store it in another global variable
// global
x := &Foo{}
2022-09-14 17:50:31 +01:00
gingerBill
d2097e9fdd Add inline debug generation for assembly target flag (#2028) 2022-09-07 11:17:33 +01:00
Jeroen van Rijn
4b2246ba9f Fix #1999
Tested on Windows and Linux.
2022-09-03 18:47:05 +02:00
gingerBill
5337b0b471 Revert "Remove debug message"
This reverts commit 22d16c20f8.

Revert "Correct global constant procedure initialization"

This reverts commit 697c839c84.

Revert "Clean up how procedures are typed in LLVM's dumb type system"

This reverts commit de8bd88d2a.
2022-08-16 16:16:36 +01:00
gingerBill
22d16c20f8 Remove debug message 2022-08-12 12:29:32 +01:00
gingerBill
697c839c84 Correct global constant procedure initialization 2022-08-12 12:29:11 +01:00
gingerBill
de8bd88d2a Clean up how procedures are typed in LLVM's dumb type system 2022-08-12 11:15:12 +01:00
gingerBill
cb0a59bb2c Eliminate use of LLVMGetElementType for pointers 2022-08-09 15:36:18 +01:00
Christoffer Lerno
9c0a3b6c60 Removed use of deprecated functions. Cleaned up most deprecated use of LLVMGetElementType. 2022-08-07 19:26:28 +02:00
gingerBill
f3aefbc443 @(require_target_feature=<string>) @(enable_target_feature=<string>)
require_target_feature - required by the target micro-architecture
enable_target_feature - will be enabled for the specified procedure only
2022-05-30 14:53:12 +01:00
gingerBill
e4743b15b1 Add @(priority_index=<int>) for foreign import 2022-05-04 16:40:12 +01:00
gingerBill
cec049b7d3 Make the link order of foreign imports deterministic 2022-05-04 16:04:26 +01:00
Jeroen van Rijn
3cab2592c3 Compiler: Add early error for output path being a directory.
- 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.
2022-04-24 13:37:26 +02:00
gingerBill
4474144c24 Merge pull request #1505 from jasonKercher/fix_odin_test
fix `odin test`
2022-03-14 12:09:39 +00:00
gingerBill
a7adb2fb6e Merge branch 'master' into freestanding_amd64 2022-03-14 11:02:59 +00:00
Jason Kercher
d2bc41a2df Merge remote-tracking branch 'upstream/master' into fix_odin_test 2022-03-09 17:17:40 -05:00
Sébastien Marie
f76f70c7cf openbsd: defaults to PIE executable
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).
2022-02-28 15:24:22 +00:00
gingerBill
09e4fff5b1 -target-features:<string>
This just passes a string directly to the LLVM features string
2022-02-28 15:08:50 +00:00
gingerBill
2d89faa17c Add extra checks for -disallow-rtti 2022-02-28 14:35:38 +00:00
gingerBill
278e239973 Commit rest of code for -disallow-rtti 2022-02-28 13:40:01 +00:00
gingerBill
4a04a32e0a Change target name to freestanding_amd64_sysv 2022-02-23 11:33:28 +00:00
gingerBill
3d209798c9 Add help docs for -reloc-mode:<string> 2022-02-23 11:19:51 +00:00
gingerBill
3e5c60f746 Add -reloc-mode:<string> 2022-02-20 14:48:12 +00:00
gingerBill
1bec9e5331 Add freestanding_amd64_gnu 2022-02-20 14:19:52 +00:00
CiD-
bea2f36443 improve entry point check logic 2022-02-17 10:48:30 -05:00
CiD-
df23cf47c6 fix odin test 2022-02-16 22:08:39 -05:00
gingerBill
7386ca9272 Add new objc intrinsics: objc_(register|find)_(selector|class) 2022-02-14 11:21:21 +00:00
gingerBill
0cc40db565 Begin work on support objc intrinsics 2022-02-08 17:04:55 +00:00
gingerBill
3f59c45740 Remove main creation in llvm_backend.cpp and have it done purely in the runtime package (partial bootstrapping) 2022-01-15 17:42:10 +00:00
gingerBill
29ebe0c3c9 Rename architecture 386 to i386 2022-01-15 17:40:00 +00:00
gingerBill
6aa80ee8e4 Correct _start as an entry point 2022-01-15 15:38:09 +00:00
gingerBill
fb0a3ab7c1 Correct linkage for entry point procedures on Windows 2022-01-12 20:07:17 +00:00
gingerBill
5ec93677a0 Correct look for entry point in llvm backend (Windows only currently) 2022-01-12 19:27:49 +00:00
gingerBill
7e4067c44c Begin work to move entry point code to Odin itself rather than in C++ side 2022-01-12 19:19:43 +00:00
Dale Weiler
8f91e9307c shared library fixes 2022-01-10 17:57:33 -05:00
gingerBill
3f038428a7 Begin minimizing Ast size 2021-11-14 15:12:37 +00:00
gingerBill
dc2edd3e79 Improve support for freestanding_wasm32 2021-11-07 16:19:27 +00:00
gingerBill
3d3785a7f1 Remove many LLVM optimization passes which were causes UB due to them assuming C-like behaviour incompatible with Odin 2021-11-06 17:23:33 +00:00