Commit Graph

4216 Commits

Author SHA1 Message Date
Mark Naughton 4b4481ea27 Simplify extension addition logic 2023-04-26 16:39:47 +01:00
Mark Naughton e84802468b Use buildpath instead of init_filename 2023-04-26 15:48:59 +01:00
Mark Naughton 1a5ed4eb7f Fix .bin not being applied for relative directory 2023-04-26 14:10:22 +01:00
Mark Naughton 5151403aaa Fix Windows version of get_current_directory 2023-04-25 12:08:15 +01:00
Mark Naughton 67b6a8ee89 Add Windows equivalent of get_current_directory 2023-04-24 14:26:53 +01:00
Mark Naughton 780375d865 Add .bin extension in extra case 2023-04-24 12:57:59 +01:00
Mark Naughton cbcf94669e Add get_current_directory() 2023-04-24 12:57:34 +01:00
Mark Naughton 06e8d03fba Use last element for directory collision check 2023-04-23 21:15:08 +01:00
Mark Naughton a6b9341593 Add .bin extension the case of a collision
The directory name is used to determine the executable name. In the case
that the directory and output executable are in conflict, a .bin
extension is added.
2023-04-23 18:53:00 +01:00
Mark Naughton 47610725ea Change default executable extension
Putting a program into your path on a UNIX system with a
file extension means that you have to type the extension out for every
invocation of the program. A better default is to have no extension at
all since most people will end up removing it anyway.

This change does not affect Windows since the .exe extension is set
after the default extension if compiling on Windows.
2023-04-23 17:02:56 +01:00
gingerBill f2ec438166 Add ifdef block 2023-04-21 12:50:36 +01:00
gingerBill a95b064d6d Fix memory leak caused by awful realloc usage on Linux 2023-04-21 13:29:38 +01:00
gingerBill 685f7d0fea Rename word_size to ptr_size internally to make it clearer 2023-04-20 12:18:13 +01:00
gingerBill f5d9ca64f9 Begin work on new pseudo-architecture: wasm64p32 2023-04-20 12:02:32 +01:00
gingerBill cde442fa2c Add internal padding to types where ptr size != int size 2023-04-20 11:55:18 +01:00
gingerBill 84f966cb8f Begin work on separating int and word sizes (i.e. size_of(int) might not equal size_of(uintptr)) 2023-04-20 11:46:41 +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 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 bfb231fb8a Simplify copy elision on variable declarations 2023-03-16 17:24:29 +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 49cf0125a9 Fix minor memory leak 2023-03-16 13:01: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