Commit Graph

3820 Commits

Author SHA1 Message Date
gingerBill
7bd42cb02f Merge branch 'master' into windows-llvm-13.0.0 2023-04-20 14:02:02 +01:00
gingerBill
9d23a392a6 Merge branch 'master' of https://github.com/odin-lang/Odin 2023-04-20 11:27:14 +01:00
gingerBill
6726df4d58 Allow aliasing foreign import name 2023-04-20 11:20:15 +01:00
gingerBill
02a58c1247 Merge pull request #2464 from ap29600/simd_unaligned_load
Improve code generation for `intrinsics.unaligned_load/store` on `#simd` types
2023-04-20 10:33:32 +01:00
gingerBill
72a7b35513 Merge pull request #2450 from destroycomputers/master
Fix intrinsics.alloca code generation
2023-04-20 10:25:43 +01:00
gingerBill
843eaf8893 Fix race condition with -use-separate-modules due to type determination 2023-04-18 17:20:50 +01:00
gingerBill
30fa8f8ac2 Add missing enum 2023-04-18 16:08:54 +01:00
gingerBill
0ec4e8d5d4 Inline static map calls for map get, and improve readability of the LLVM IR 2023-04-18 15:17:16 +01:00
Andrea Piseri
af63eff8d7 improve code generation for intrinsics.unaligned_load/store on #simd types
the default implementation calls memcpy on an `alloca` constant, which
seems to heavily confuse the optimizer and produces overall suboptimal
code.

Introducing this specialization simplifies the intermediate
representation produced, resulting in more efficient code.
2023-04-16 15:01:30 +02:00
gingerBill
e24315eed8 Improve grammar 2023-04-15 16:16:16 +01:00
gingerBill
dc55e88588 Add @(deferred_*_by_ptr=<proc>) 2023-04-15 16:04:04 +01:00
gingerBill
5da76ae34b Add struct #no_copy 2023-04-15 15:37:32 +01:00
destroycomputers
b6f356c211 Fix intrinsics.alloca code generation
There was a disconnect between the declared return type for alloca
intrinsic in check_builtin.cpp (multi_pointer(t_u8)) and the generated
result type in llvm_backend_proc.cpp (t_u8_ptr).

This allowed slicing the return type, but in the code generation process
the type of the expression wasn't sliceable, which triggered the assert.

Fixes #2139
2023-04-11 01:11:01 +02:00
gingerBill
ae6e76bbb3 Merge pull request #2435 from Lperlind/master
Fix type comparison not accounting for parapoly params
2023-04-06 12:56:25 +01:00
gingerBill
70ce878dfb Add -max-error-count:<integer> 2023-04-04 12:11:12 +01:00
gingerBill
08ffbeebd5 Merge branch 'master' into windows-llvm-13.0.0 2023-04-03 21:12:10 +01:00
gingerBill
adcaace03c Fix allow_field_separator for foreign import 2023-04-03 21:09:26 +01:00
Lucas Perlind
08bc6a1698 Fix type comparison not accounting for parapoly params 2023-04-03 12:47:28 +10:00
Mark Naughton
bd7ffcc048 Change help text to output to stdout 2023-03-29 16:30:02 +01:00
Alexander Goussas
99d6c58971 Fix typo in warning message in parser 2023-03-24 15:37:17 -05:00
gingerBill
d986eee36b Fix typo 2023-03-21 15:28:52 +00:00
gingerBill
b3e712e0b8 Correctly handle end comment for doc generation 2023-03-21 15:22:11 +00:00
gingerBill
2c4a478987 Add @(extra_linker_flags=<string>) 2023-03-21 13:30:58 +00:00
gingerBill
ba02ef8f25 Change trailing comma require to -strict-style only 2023-03-21 13:16:03 +00:00
gingerBill
fe533fb809 Improve llreg integer type generation for SysV ABI 2023-03-19 01:29:53 +00:00
gingerBill
1f5bb99548 Improve SysV ABI for multiple return values that fit into a single register; Fixes #2384 2023-03-19 00:51:57 +00:00
gingerBill
cb47c78af6 Merge branch 'master' into windows-llvm-13.0.0 2023-03-16 17:25:02 +00:00
gingerBill
bfb231fb8a Simplify copy elision on variable declarations 2023-03-16 17:24:29 +00:00
gingerBill
c2f69f091b Merge branch 'master' into windows-llvm-13.0.0 2023-03-16 15:16:58 +00:00
gingerBill
8dc70f797c Increase use of temporary_allocator() where possible 2023-03-16 15:16:17 +00:00
gingerBill
c1c7128634 Minimize severe memory usage by enforcing the heap_allocator() in places 2023-03-16 15:04:57 +00:00
gingerBill
e67947b371 Merge branch 'master' into windows-llvm-13.0.0 2023-03-16 13:08:57 +00:00
gingerBill
49cf0125a9 Fix minor memory leak 2023-03-16 13:01:06 +00:00
gingerBill
b4666c7e23 Merge branch 'master' into windows-llvm-13.0.0 2023-03-16 12:45:06 +00:00
gingerBill
0602a16ad6 Reserve memory for procedures when generating the LLVM IR 2023-03-16 12:44:03 +00:00
gingerBill
00f24a3249 Merge pull request #2380 from flysand7/master
Add -no-thread-local flag
2023-03-14 13:04:34 +00:00
Florian Behr
8d5c865814 Fix missing commas in -target-featues string by adding missing i increment. 2023-03-14 13:39:08 +01:00
bumbread
5134d6bc63 rename -no-tls to -no-thread-local 2023-03-14 16:32:42 +11:00
bumbread
5f3b6c9722 Added -no-tls flag 2023-03-13 20:25:13 +11:00
gingerBill
93f7d3bfb9 Allow case nil within a type switch statement (experimental idea) 2023-03-12 16:33:21 +00:00
gingerBill
bf91fcc6f7 Improve type checking on polymorphic unions 2023-03-12 12:39:31 +00:00
gingerBill
c39bd7e089 Fix range loop & vals debug info 2023-03-09 15:57:29 +00:00
gingerBill
3470d986f0 Fix debug symbols for range loops 2023-03-09 15:48:02 +00:00
gingerBill
7c0257fcda Fix value elision on declaration 2023-03-09 15:39:41 +00:00
gingerBill
7f3f164736 Update help usage 2023-03-07 15:32:32 +00:00
gingerBill
085db569f1 Add -o:none optimization mode (useful for -debug builds) 2023-03-07 15:31:55 +00:00
gingerBill
1c2301e2f1 Use atof in float_from_string to allow for debug C-like semantic purposes 2023-03-06 19:52:03 +00:00
gingerBill
a164438b5b Merge branch 'master' into windows-llvm-13.0.0 2023-03-06 11:35:19 +00:00
gingerBill
2d71ab6f29 Improve error message on undefined operators 2023-03-02 14:54:27 +00:00
gingerBill
9afd9f9bea Merge branch 'master' into new-temp-allocator 2023-02-28 12:15:54 +00:00