Commit Graph

26338 Commits

Author SHA1 Message Date
Robin Voetter
faad97edff spirv: update failing / passing tests
Some tests are now failing due to debug info changes, some tests
now pass due to improved compiler functionality.
2023-10-15 20:08:18 +02:00
Robin Voetter
0552e504d0 spirv: work around OpSource parsing issue in llvm-spirv
The Khronos SPIRV-LLVM translator does not parse OpSource correctly. This
was causing tests to fail and other mysterious issues.

These are resolved by only generating a single OpSource instruction for now,
which does not have the source file locations also.

See https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/2188
2023-10-15 17:07:39 +02:00
Ali Chraghi
45a1945dc4 spirv: simple binary and comparison vector operations 2023-10-15 14:00:33 +02:00
Robin Voetter
9c20449cc5 wasm: lower min/max for floats to compiler_rt
The min and max builtins in Zig have some intricate behavior
related to floats, that is not replicated with the min and max
wasm instructions or using simple select operations. By lowering
these instructions to compiler_rt, handling around NaNs is done
correctly.

See also https://github.com/WebAssembly/design/issues/214
2023-10-15 14:00:32 +02:00
Ali Chraghi
2fe16e072a spirv: emit vectors as arrays 2023-10-15 14:00:32 +02:00
Robin Voetter
245c084726 add Snektron to CODEOWNERS for SPIR-V 2023-10-15 14:00:31 +02:00
Robin Voetter
f4064d98e2 spirv: optional comparison 2023-10-15 14:00:31 +02:00
Robin Voetter
10b8171466 spirv: handle errors in switch 2023-10-15 14:00:30 +02:00
Robin Voetter
3ca1f88898 std.testing: disable expectEqualSlices printing for spirv 2023-10-15 14:00:26 +02:00
Robin Voetter
e2e4e1f8b4 spirv: intcast, trunc for strange ints 2023-10-15 14:00:10 +02:00
Robin Voetter
b1499df1b8 spirv: sign-extension for strange integers 2023-10-15 14:00:09 +02:00
Robin Voetter
dc44baf763 std.testing: allow print() at comptime
This allows functions like expectEqual to be performed at comptime. If
an error is detected, the result is logged via a compile error.
2023-10-15 14:00:08 +02:00
Robin Voetter
839a93a101 intern pool: fix float equality
We need to perform bitwise equality here, otherwise we get
two different entries for nan values.
2023-10-15 14:00:08 +02:00
Robin Voetter
4f279078c8 spirv: air min/max 2023-10-15 14:00:07 +02:00
Robin Voetter
f858bf1616 spirv: air bitcast for non-numeric non-pointer types 2023-10-15 14:00:07 +02:00
Robin Voetter
0af16a58a0 spirv: fix air is_null optional slice field type 2023-10-15 14:00:06 +02:00
Robin Voetter
d0e7a3596b spirv: allow generation of *i0 2023-10-15 14:00:06 +02:00
Robin Voetter
2d52fc762d spirv: handle zero-sized arrays 2023-10-15 14:00:05 +02:00
Ali Chraghi
d8b591766a spirv: fpext and fptrunc instructions 2023-10-15 14:00:04 +02:00
Robin Voetter
d2692af8e2 spirv: override function return type to void if it has no runtime bits 2023-10-15 14:00:04 +02:00
Robin Voetter
ae3efab226 spirv: generate *void as pointer to opaque 2023-10-15 14:00:03 +02:00
Robin Voetter
fe51ff9fc1 spirv: make air is_null not emit OpPtr(Not)Equal 2023-10-15 14:00:03 +02:00
Robin Voetter
15cf1315bb spirv: fix incorrect repr of some optional operations 2023-10-15 14:00:01 +02:00
Robin Voetter
0a3e566f57 spirv: make bitcasts between the same spirv type a no-op 2023-10-15 14:00:01 +02:00
Robin Voetter
c6c5fb40de spirv: fix float unequality 2023-10-15 14:00:00 +02:00
Robin Voetter
4a6a024a4b spirv: properly skip comptime function parameters 2023-10-15 14:00:00 +02:00
Robin Voetter
89b1dafa78 spirv: aggregate_init for structs 2023-10-15 13:59:55 +02:00
Robin Voetter
28dda3bf89 spirv: put linkery bits in Object
This structure is used to group information that needs to
persist between decls in codegen.
2023-10-15 13:59:26 +02:00
Robin Voetter
31ad2d72a7 spirv: use CacheString for source_file_names instead of []const u8 2023-10-15 13:59:26 +02:00
Robin Voetter
a3d77bdba9 spirv: get rid of SpvModule arena 2023-10-15 13:59:25 +02:00
Robin Voetter
ab701c3d37 spirv: anon decl refs 2023-10-15 13:59:24 +02:00
Robin Voetter
08ea9a9ff6 spirv: cast result of .elem pointers to right type if needed 2023-10-15 13:59:23 +02:00
Robin Voetter
a7c3d5e4ec spirv: constant elem ptr fix 2023-10-15 13:59:22 +02:00
Robin Voetter
4ea361f6dc spirv: lower pointers to zero-bit types as undef 2023-10-15 13:59:22 +02:00
Robin Voetter
4e22f811e7 spirv: opaque types 2023-10-15 13:59:20 +02:00
joadnacer
a241cf90d6 std.base64: Improve Encoder/Decoder performance 2023-10-14 23:28:19 -07:00
Luuk de Gram
b0f031f573 Merge pull request #17523 from xxxbxxx/wasm-codegen
wasm codegen fixes
2023-10-15 05:51:41 +02:00
Peng He
a126afa1c3 translate-c: fix crash when last stmt of stmt expr is a decl 2023-10-14 17:09:54 +00:00
Ryan Barth
8a15c9249c update build.zig examples from current stdlib 2023-10-14 19:57:47 +03:00
Xavier Bouchoux
78fe3feedb tests: enable already passing behaviour tests for self-hosted wasm
1611 passed; 262 skipped; 0 failed.
(was: 1543 passed; 330 skipped; 0 failed.)
2023-10-14 12:50:39 +02:00
Xavier Bouchoux
d5991ee7ca codegen/wasm: fix non-byte-sized signed integer comparison 2023-10-14 10:23:36 +02:00
Xavier Bouchoux
27a19908ed codegen/wasm: fix tuple member offset computation
It didn't account for field alignement.
2023-10-14 10:23:36 +02:00
JustinWayland
895c81ce72 Add a missing period in Future's description 2023-10-14 11:20:11 +03:00
Andrew Kelley
3be8490d82 Merge pull request #17242 from ziglang/ci-windows-tarballs
CI: update windows tarballs
2023-10-14 00:36:13 -07:00
Andrew Kelley
e66e404d61 these tests are failing on x86_64-windows too 2023-10-14 00:35:59 -07:00
Andrew Kelley
6ba7d0c435 reapply "CI: update x86_64 windows tarballs"
This reverts commit 272a57eeed,
reapplying commit bb98ffbe7f.
2023-10-14 00:35:59 -07:00
Andrew Kelley
1a6ba7e1cc Merge pull request #17489 from ziglang/glibc-update
add glibc 2.35, 2.36, 2.37, and 2.38
2023-10-14 00:34:24 -07:00
Andrew Kelley
ab4d6bf468 LLVM: work around @floatFromInt bug
see #17381
2023-10-14 00:33:46 -07:00
Andrew Kelley
701ef1f8c2 glibc patch: remove some static asserts from fstatat
These are tripping on 32-bit x86 but are intended to prevent glibc
itself from being built with a bad configuration. Zig is only using this
file to create libc_nonshared.a, so it's not relevant.
2023-10-13 19:32:54 -07:00
Andrew Kelley
0b16500604 glibc patch: don't check __LIBC macro
This is the only place in all of glibc that this macro is referenced.
What is it doing? Only preventing fstatat.c from knowing the type
definition of `__time64_t`, apparently.

Fixes compilation of fstatat.c on 32-bit x86.
2023-10-13 19:31:57 -07:00