Jacob Young
06eebafadd
AstGen: redistribute inline asm limits
2025-04-10 06:04:09 -04:00
Jacob Young
7a2963efab
x86_64: add avx512 registers
2025-04-10 02:04:52 -04:00
Jacob Young
bbf8abf5d3
x86_64: support rip-relative addressing to labels in inline asm
2025-04-10 02:04:52 -04:00
Jacob Young
f4a31bed98
x86_64: remove broken const value tracking
2025-04-10 02:04:52 -04:00
Jacob Young
1eb5d70d12
x86_64: fix switch on big ints
2025-04-09 20:14:12 -04:00
Jacob Young
bc10131db1
x86_64: rewrite scalar @mulWithOverflow
...
Closes #19607
2025-04-09 20:14:12 -04:00
Jacob Young
55ce756868
x86_64: rewrite scalar @subWithOverflow
2025-04-09 20:14:12 -04:00
Jacob Young
80068b6e59
x86_64: rewrite scalar @addWithOverflow
2025-04-09 20:14:12 -04:00
Alex Rønne Petersen
ddcf6fcdf3
compiler: Allow using LLVM's SPIR-V backend.
2025-04-09 19:32:57 +02:00
Mun Maks
4fc783670a
Sema/arith.zig: Fixing more typos from #23177 .
...
This is a complementary PR to #23487 (I had only found one typo before).
Now I've looked at the whole `arith.zig` file, trying to find other potential problems.
Discussion about these changes:
https://github.com/ziglang/zig/pull/23177#discussion_r1997957095
2025-04-09 12:53:11 +01:00
Alex Rønne Petersen
79a620d617
zig_clang: Fix ZigClangAPValue being underaligned vs clang::APValue.
...
Also add a static_assert to catch future alignment mismatches on this type, and
reflect recent layout changes in the Zig bindings.
2025-04-09 11:53:24 +02:00
Techatrix
3830fc041b
Compilation: Fix logic in addCCArgs() for various file types and flags.
...
Co-authored-by: Alex Rønne Petersen <alex@alexrp.com>
2025-04-09 10:12:42 +02:00
imreallybadatnames™️
7733b5dbe6
Merge pull request #23501 from imreallybadatnames/master
...
Step.Compile: use LtoMode enum for lto option
2025-04-09 05:16:36 +00:00
SuperAuguste
227788e6d5
Fix mach-o naming for sancov sections
2025-04-09 04:48:39 +02:00
Matthew Roush
fb1d4990cb
Make translate-c more robust in handling macro functions.
...
Translate-c didn't properly account for C macro functions having parameter names that are C keywords. So something like `#define FOO(float) ((float) + 10)` would've been interpreted as casting `+10` to a `float` type, instead of adding `10` to the parameter `float`.
An example of a real-world macro function like this is SDL3's `SDL_DEFINE_AUDIO_FORMAT` from `SDL_audio.h`, which uses `signed` as a parameter.
2025-04-07 20:53:38 +00:00
Alex Rønne Petersen
f2f36c49c8
compiler: Switch default code model for loongarch64 to medium.
...
LLVM 21 will change the default, but we're making the change now to make
building Zig for loongarch64 less painful.
https://github.com/llvm/llvm-project/pull/132173
2025-04-07 21:36:56 +02:00
Maksat
4995509028
#23177 , maintainter 'mlugg' wanted to fix that typo, 4 weeks without changes, might be forgotten
2025-04-07 16:50:28 +01:00
Alex Rønne Petersen
f13292abbc
zig_clang: Fix size of ZigClangAPValue for Clang 20.
...
Fixes failing tarball builds for x86-linux and x86-windows.
The MSVC special case here is very sus, but that's a problem for another day.
2025-04-07 17:41:06 +02:00
SuperAuguste
36b9e56753
Remove overzealous LLVM anti-instrumentation attributes
2025-04-07 07:53:42 +02:00
Jacob Young
470e2b63d9
Dwarf: handle undefined type values
...
Closes #23461
2025-04-05 21:42:33 -04:00
Jacob Young
9827ffe1de
x86_64: fix incorrect handling of unreusable operands
...
Closes #23448
2025-04-05 20:49:56 -04:00
Andrew Kelley
0cd31fc7ff
Merge pull request #22780 from ziglang/llvm20
...
LLVM 20
2025-04-05 01:46:13 -04:00
Andrew Kelley
810f70ef42
update compiler usage of DoublyLinkedList API
2025-04-03 22:58:52 -07:00
Alex Rønne Petersen
c3e88a21fb
compiler: Recognize -fno-sanitize=<...> in addition to -fsanitize=<...>.
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
15a05fc324
Revert "compiler: Don't consider powerpc to have red zone support yet."
...
This reverts commit 4fad60fd3a70d0b059ce92ce825faabc1d2ac2e8.
Closes #23056 .
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
9e4199d629
Compilation: Remove the PowerPC soft float preprocessor workaround.
...
Closes #21411 .
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
28469636ba
zig cc: Avoid passing any "CPU" features related to float ABI to Clang.
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
0d6f3aa6c1
llvm: Remove workaround for zero-length memset/memcpy on wasm.
...
Closes #16360 .
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
7109e462b7
llvm: Use muslabin32/muslabi64 environments in the target triple.
...
Closes #2909 .
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
9a59cff27f
llvm: Allow FastISel on mips again.
...
Closes #21215 .
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
166766d63d
llvm: never_tail implies never_inline, so set noinline in this case too.
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
7415739e36
Sema: Prevent tail calls of std.builtin.returnError().
...
LLVM 20 started tail-calling it in some of our test cases, resulting in:
error: AndMyCarIsOutOfGas
/home/alexrp/Source/ziglang/zig-llvm20/repro.zig:2:5: 0x103ef9d in main (repro)
return error.TheSkyIsFalling;
^
/home/alexrp/Source/ziglang/zig-llvm20/repro.zig:6:5: 0x103efa5 in main (repro)
return error.AndMyCarIsOutOfGas;
^
/home/alexrp/Source/ziglang/zig-llvm20/lib/std/start.zig:656:37: 0x103ee83 in posixCallMainAndExit (repro)
const result = root.main() catch |err| {
^
instead of the expected:
error: AndMyCarIsOutOfGas
/home/alexrp/Source/ziglang/zig-llvm20/repro.zig:2:5: 0x103f00d in main (repro)
return error.TheSkyIsFalling;
^
/home/alexrp/Source/ziglang/zig-llvm20/repro.zig:6:5: 0x103f015 in main (repro)
return error.AndMyCarIsOutOfGas;
^
/home/alexrp/Source/ziglang/zig-llvm20/repro.zig:11:9: 0x103f01d in main (repro)
try bar();
^
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
858305385d
llvm: Update the list of targets that use native f16/f128.
...
Closes #22003 .
Closes #22013 .
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
cf9c6f5298
compiler: Update max int alignments for some targets.
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
4c5c5bcd91
llvm: Fix i128 alignment for various targets.
...
This ABI bug was fixed in LLVM 20.
2025-04-04 06:08:10 +02:00
Alex Rønne Petersen
3d1cfdb365
llvm: Set target-abi module flag.
...
LLVM is increasingly making use of this module flag when present.
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
e99c11856d
libtsan: Update to LLVM 20.
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
d67d52abe5
zig cc: Update options data to Clang 20.
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
8954e9748a
std.Target: Add Abi.muslf32 and Abi.muslsf.
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
4de368a1b6
std.Target: Update CPU models/features for LLVM 20.
...
Closes #21818 .
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
8ea2e1ded5
compiler: Updates for LLVM/Clang 20 API changes.
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
156ab87500
libcxx: Update to Clang 20.
...
See:
* https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc/77319
* https://discourse.llvm.org/t/rfc-project-hand-in-hand-llvm-libc-libc-code-sharing/77701
We're dropping support for C++03 for Zig due to the first change; it would be
insane to ship 1018 duplicate header files just for this outdated use case.
As a result of the second change, I had to bring in a subset of the headers from
llvm-libc since libc++ now depends on these. Hopefully we can continue to get
away with not copying the entirety of llvm-libc.
2025-04-04 06:08:09 +02:00
Alex Rønne Petersen
0181cfe8ad
zig cc: Update driver files to Clang 20.
2025-04-04 06:08:09 +02:00
Parker Liu
de62dc884e
translate-c: fix function prototype decalared inside a function
...
* If a function prototype is declarated inside a function, do not
translate it to a top-level extern function declaration. Similar to
extern local variable, just wrapped it into a block-local struct.
* Add a new extern_local_fn tag of aro_translate_c node for present
extern local function declaration.
* When a function body has a C function prototype declaration, it adds
an extern local function declaration. Subsequent function references
will look for this function declaration.
2025-04-02 20:07:41 +00:00
Mason Remaley
87209954a7
Zcu: fix ZOIR cache bugs
...
* When saving bigint limbs, we gave the iovec the wrong length, meaning
bigint data (and the following string and compile error data) was corrupted.
* When updating a stale ZOIR cache, we failed to truncate the file, so
just wrote more bytes onto the end of the stale cache.
2025-04-02 05:54:04 +01:00
Mason Remaley
06ee383da9
compiler: allow @import of ZON without a result type
...
In particular, this allows importing `build.zig.zon` at comptime.
2025-04-02 05:53:22 +01:00
David Rubin
1b62a22268
Sema: increment extra index even if return type is generic
2025-04-02 01:34:17 +02:00
Jacob Young
b431e9af97
Elf: fix incrementally reallocating the last atom in a section
2025-03-31 19:06:25 -04:00
mlugg
d53cc5e5b2
Sema: allow @ptrCast slice of zero-bit type to slice of non-zero-bit type
...
This is actually completely well-defined. The resulting slice always has
0 elements. The only disallowed case is casting *to* a slice of a
zero-bit type, because in that case, you cna't figure out how many
destination elements to use (and there's *no* valid destination length
if the source slice corresponds to more than 0 bits).
2025-03-31 19:03:08 -04:00
Parker Liu
0bdc0bb534
translate-c: fix referencing extern locals from nested blocks
2025-03-31 20:22:03 +03:00