Commit Graph

5364 Commits

Author SHA1 Message Date
gingerBill
d3f0b31fcc Improve or_else type inference logic 2025-03-27 15:08:53 +00:00
Dave Voutila
5274aa53b3 Fix linker invocation on OpenBSD.
Firstly, we need to explicitly request pthreads and also need to
mind the fact ports (like SDL2) install in /usr/local/lib.

Secondly, since OpenBSD 7.4 the system enforces indirect branch
targets on hardware platforms that support it. Until the LLVM
integration in Odin can be changed to emit proper branch targets
(e.g. endbr64 on amd64), we need to request the linker make the
resulting program opt-out of enforcement.
2025-03-27 10:37:36 -04:00
gingerBill
729b6a4337 Merge pull request #4974 from harold-b/hb.fix-syscall-memory-dep
Add `~{memory}` clobber to syscall intrinsics for platforms where it was missing
2025-03-27 09:09:18 +00:00
Harold Brenes
6fda041e17 Add ~{memory} clobber to syscall intrinsics for platforms where it was not yet added.
This fixes #4972 and #4588.

As laytan asserts, there is no guarantee that a syscall will not modify memory that it just obtained from the user, or held onto via a previous syscall. Therefore this constraint should be required for all syscalls.
2025-03-26 19:25:06 -04:00
gingerBill
5e89e5ad8b Use store 2025-03-24 13:40:24 +00:00
gingerBill
fe6117fc63 Use store over memcpy 2025-03-24 13:14:54 +00:00
gingerBill
ce026ff2c4 Fix #4949 2025-03-24 13:13:25 +00:00
gingerBill
56e0ab7655 Fix #4952 2025-03-24 13:11:41 +00:00
gingerBill
acb578f184 Fix #4962 2025-03-24 11:35:10 +00:00
Laytan Laats
f85db012b8 fix off by one temp cstring and put objc names on permanent allocator to be safe
Fixes #4922
2025-03-21 22:56:19 +01:00
Laytan Laats
badd2c90f9 drop llvm 19 feature/microarch table
There was a bug in LLVM 19 introduced in https://github.com/llvm/llvm-project/pull/96249 and fixed in https://github.com/llvm/llvm-project/pull/118581.

Lets just use the LLVM 18 table for LLVM 19.
2025-03-20 16:51:27 +01:00
Laytan Laats
f80e73e036 few llvm 20 changes 2025-03-19 21:22:55 +01:00
gingerBill
809ee42873 Fix typo in passes 2025-03-18 16:46:15 +00:00
gingerBill
b2376d05a6 Fix typo 2025-03-18 16:39:08 +00:00
gingerBill
4c3c3a0631 Add new LLVM 20 passes 2025-03-18 16:21:08 +00:00
gingerBill
d209af5094 Update to LLVM 20.1.0 2025-03-18 15:39:18 +00:00
gingerBill
d3b1aaad18 Use :: rather than $ to try and fix mac SEL stuff 2025-03-12 12:53:26 +00:00
gingerBill
d5fe392edd Merge pull request #4927 from voutilad/openbsd-futex
Fix futex(2) usage on OpenBSD.
2025-03-11 15:51:57 +00:00
gingerBill
d15be94a0f Remove debug print 2025-03-11 15:50:46 +00:00
gingerBill
6e1c21411d Fix object name generation 2025-03-11 15:50:31 +00:00
Dave Voutila
0059507374 Fix futex(8) usage on OpenBSD. 2025-03-11 10:28:48 -04:00
gingerBill
7f61e53286 Fix #3955 2025-03-07 10:48:49 +00:00
gingerBill
97eeb25adc Fix #4244 2025-03-07 10:44:34 +00:00
gingerBill
af37ca1286 Fix #4573 2025-03-07 10:38:36 +00:00
gingerBill
168a41ba2c Fix #4803 2025-03-07 10:33:41 +00:00
gingerBill
f3210eccaf Fix #4866 2025-03-07 09:44:18 +00:00
gingerBill
97d410c2ae Fix #4909 2025-03-06 11:17:55 +00:00
gingerBill
55317b0987 Fix #4914 2025-03-06 11:15:27 +00:00
gingerBill
fcee19434e Fix object name generation to previous behaviour 2025-03-06 09:49:30 +00:00
gingerBill
8214892b5b Merge pull request #4893 from Barinzaya/for-bitset-ctz
Use CTZ in `for in bit_set` codegen
2025-03-04 07:51:09 +00:00
gingerBill
4170e6e6d4 Merge pull request #4900 from Barinzaya/fix-bitset-xor-changes-enum
Fix `~bit_set[Some_Enum]` altering the enum
2025-03-03 11:03:17 +00:00
Barinzaya
ef83f2115a Implemented #reverse for for in bit_set. 2025-03-02 16:24:18 -05:00
Barinzaya
6e3d17d189 Fixed ~ on bit_set[Some_Enum] altering the definition of the enum.
This was occurring for enums whose minimum values were greater than
zero.
2025-03-02 13:29:39 -05:00
gingerBill
ee84487106 Merge branch 'master' of https://github.com/odin-lang/Odin 2025-03-01 15:19:51 +00:00
gingerBill
211680569f Fix for -use-single-module 2025-03-01 15:19:46 +00:00
Laytan Laats
66540b75f5 fix hidden linkage applied to foreign symbols 2025-03-01 16:06:32 +01:00
Barinzaya
36d5e09419 Re-implemented for on bit_sets to use CTZ.
This solution is both faster at run-time and a simpler implementation
than the original solution, which required separate cases for enums and
ranges.
2025-02-28 06:51:14 -05:00
gingerBill
400348c925 Improve global array index to be on a per module basis 2025-02-25 15:06:13 +00:00
gingerBill
92f6d2745b Make lb_add_global_generated_from_procedure not use a global index but local to procedure 2025-02-25 15:01:12 +00:00
gingerBill
46c0910a77 Fix lb_add_global_generated_with_name 2025-02-25 14:59:59 +00:00
gingerBill
fd6d7d412d Use more predictable object name 2025-02-25 14:55:33 +00:00
gingerBill
5aafbc7f30 Use more deterministic module names 2025-02-25 14:35:54 +00:00
gingerBill
f9d85a7311 Try to make globally generated variables deterministic in name 2025-02-25 14:29:14 +00:00
gingerBill
faaa05536f Support -show-timings for odin doc 2025-02-24 17:42:21 +00:00
gingerBill
d0d5cf800e Fix nullptr check 2025-02-24 15:49:49 +00:00
gingerBill
344eb6cb42 Fix name canonicalization for doc writer 2025-02-24 15:44:38 +00:00
gingerBill
f56a0a80d3 Use type hash for doc writer 2025-02-24 15:37:54 +00:00
gingerBill
de70e6faa0 Use more type hashes where possible 2025-02-24 15:33:35 +00:00
gingerBill
83f1c879ec Canonicalize generated procedures (hasher/equal/map) 2025-02-24 15:18:27 +00:00
gingerBill
68731b2b50 Canonicalize global source code locations 2025-02-24 14:36:19 +00:00