Andrew Kelley
4071b22454
Merge pull request #13715 from Vexu/cbe
...
cbe bug fixes and improvements
2022-12-01 17:38:11 -05:00
Veikka Tuominen
6ded2d2adb
cbe: disable failing behavior test on aarch64
2022-12-01 12:18:10 +02:00
Veikka Tuominen
d0edaabf9d
Value: fix elemValueAdvanced for optional payloads
...
Closes #13707
2022-12-01 11:49:06 +02:00
Luuk de Gram
090deae41d
wasm: enable behavior tests for packed structs
2022-11-30 21:01:09 +01:00
Veikka Tuominen
11ec7109c3
cbe: do not memcpy identical integer types when bitcasting
2022-11-30 17:11:06 +02:00
Veikka Tuominen
15cc83e27a
cbe: reduce amount of temporary locals
2022-11-30 17:11:06 +02:00
Veikka Tuominen
f4afeb3ffd
AstGen: fix incorrect handling of source cursor with shift builtins
...
Closes #13714
2022-11-30 17:11:06 +02:00
Veikka Tuominen
2dcac348e5
cbe: implement packed unions
2022-11-30 15:14:33 +02:00
Veikka Tuominen
1a1a5702ab
cbe: correctly handle pointers to zero bit error union payloads
2022-11-30 15:14:33 +02:00
Veikka Tuominen
4def9c4a9b
cbe: operand of address of operator must be an lvalue
2022-11-30 15:14:33 +02:00
Veikka Tuominen
6310186d52
cbe: cast pointer switch target to int
2022-11-30 15:14:33 +02:00
Veikka Tuominen
8af5648015
Sema: make inferred allocs always mutable
...
Const allocs don't make any sense, make_ptr_const handles making
the pointers not mutable.
2022-11-30 15:14:33 +02:00
Veikka Tuominen
63ae7899ae
cbe: ensure test and tagName function names are unique
2022-11-30 15:14:33 +02:00
Andrew Kelley
deda6b5146
LLVM: fix canElideLoad behavior with loops
...
closes #13546
2022-11-30 00:20:49 -05:00
Veikka Tuominen
6f5a438946
AstGen: unstack block scope when creating opaque type
...
Closes #13697
2022-11-29 21:44:08 +02:00
Veikka Tuominen
6f9c7e33b9
llvm: implement union_init for packed unions
...
Closes #13664
2022-11-29 15:47:02 +02:00
Jakub Konka
870872dd63
aarch64-windows: skip failing floatop behavior test
2022-11-28 18:10:51 -05:00
Jakub Konka
07bf4de6a9
aarch64-windows: skip failing align behavior test
2022-11-28 18:10:51 -05:00
Veikka Tuominen
304e828088
Merge pull request #13637 from Vexu/stage2-fixes
...
Stage2 bug fixes
2022-11-26 22:03:49 +02:00
Veikka Tuominen
71937f75d8
Sema: correctly detect union target in zirSwitchBlock
...
Closes #13655
2022-11-26 18:05:27 +02:00
Veikka Tuominen
72fa8d4880
Sema: fix overflow arithmetic with runtime vectors
...
It should return a a vector of bools for compatibility with scalar
operands and stage1 until #10248 can be implemented.
Closes #13201
2022-11-26 18:05:27 +02:00
Andrew Kelley
30eb2a1753
Merge pull request #13627 from Vexu/tuple-decls
...
Implement tuple type declarations
2022-11-25 18:06:09 -05:00
Veikka Tuominen
8eea73fb92
add tests for tuple declarations
2022-11-23 22:16:31 +02:00
Andrew Kelley
4ec27a4e25
C backend: implement vector reduce and overflow intrinsics
2022-11-22 23:33:58 -07:00
Veikka Tuominen
98b3734b67
Sema: prioritize Value.variable over OPV when resolving const value
...
Closes #12275
2022-11-20 20:25:12 +02:00
Veikka Tuominen
510b891d27
Sema: handle opt_payload in beginComptimePtrLoad
2022-11-20 20:25:11 +02:00
Veikka Tuominen
0616d2966a
Sema: allow coercing typed undefined to int
...
Closes #13556
2022-11-20 20:25:11 +02:00
Andrew Kelley
0697883d01
extract C backend behavior tests with vectors
...
No functional change. Separates various float operations behavior tests
from the ones that test vectors.
2022-11-19 01:29:51 -05:00
kkHAIKE
ea590ece4b
Sema: optimize compare comptime float with int
2022-11-18 22:06:49 +02:00
Stevie Hryciw
04f3067a79
run zig fmt on everything checked by CI
2022-11-18 19:22:42 +00:00
Veikka Tuominen
28cbe5e92a
Sema+llvm: improve handling of namespace-like unions
...
Closes #13557
2022-11-16 01:13:35 +02:00
Veikka Tuominen
fe6249348f
Sema: ensure comptime reference to function points to original decl
...
This prevents sema from creating new decls for the functions and
passing them to the backends as non-function decls.
Closes #12501
2022-11-16 01:12:54 +02:00
Veikka Tuominen
2cfa7165e7
Sema: do not re-evaluate type of non-generic inline call parameters
...
Closes #13491
2022-11-16 01:12:27 +02:00
Veikka Tuominen
87cf2783eb
llvm: check that tuple fields have runtime bits
...
Just checking that they aren't comptime isn't enough for `@Type` constructed tuples.
Closes #13531
2022-11-12 15:41:29 +02:00
Veikka Tuominen
a760ce598c
Sema: ensure that !is_comptime and !is_typeof implies sema.func != null
...
Closes #13481
2022-11-12 15:41:29 +02:00
Veikka Tuominen
d42f4abb9d
llvm: correctly lower references to generic functions
...
Closes #13522
2022-11-12 15:41:29 +02:00
Veikka Tuominen
40a2dfc12a
Sema: coerce array operands to shuffle
...
Closes #13494
2022-11-11 18:00:05 +02:00
Veikka Tuominen
9b832e7f53
Sema: make check for namespace lookup of private declarations more strict
...
Previously sema only checked that the private declaration was in the same
file as the lookup but now it also checks that the namespace where
the decl was included from was also in the same file.
Closes #13077
2022-11-11 17:59:53 +02:00
Veikka Tuominen
d2cc55109a
llvm: correct calculation of index of zero-bit field
...
If the field comes before any non-zero-bit field then the index of
the next field should be returned.
Closes #13363
2022-11-11 17:59:53 +02:00
Veikka Tuominen
c4465556fd
Type: check return_type for generic poison before comparing
...
Closes #13423
2022-11-11 17:59:53 +02:00
Cody Tapscott
2897641fb9
stage2: Support modifiers in inline asm
...
These are supported using %[ident:mod] syntax. This allows requesting,
e.g., the "w" (32-bit) vs. "x" (64-bit) views of AArch64 registers.
See https://llvm.org/docs/LangRef.html#asm-template-argument-modifiers
2022-11-11 16:01:31 +02:00
Cody Tapscott
b1357091ae
Add test case for #12043
...
This bug is already resolved, just want to make sure we don't lose
the test case. Closes #12043
2022-11-10 12:23:59 -07:00
Cody Tapscott
fbda15632d
stage2 sema: Make vector constants when operating on vectors
...
Resolves https://github.com/ziglang/zig/issues/13058
2022-11-10 12:22:40 -07:00
Cody Tapscott
8f3880074f
stage2: Be more strict about eliding loads
...
This change makes any of the `*_val` instructions check whether it's
safe to elide copies for by-ref types rather than performing this
elision blindly.
AIR instructions fixed:
- .array_elem_val
- .struct_field_val
- .unwrap_errunion_payload
- .try
- .optional_payload
These now all respect value semantics, as expected.
P.S. Thanks to Andrew for the new way to approach this. Many of the
lines here are from his recommended change, which comes with the
significant advantage that loads are now as small as the intervening
memory access allows.
Co-authored by: Andrew Kelley <andrew@ziglang.org>
2022-11-10 12:22:40 -07:00
Cody Tapscott
ff699722da
stage2: Fix comptime array initialization
...
This is a follow-up to 9dc98fba, which made comptime initialization
patterns for union/struct more robust, especially when storing to
comptime-known pointers (and globals).
Resolves #13063 .
2022-11-10 12:22:37 -07:00
Jakub Konka
4b3637820d
Merge pull request #13495 from ziglang/macho-dsym
...
stage2: misc DWARF debug info fixes and additions for x86_64 and aarch64
2022-11-10 16:50:57 +01:00
Jakub Konka
0914e0a4ec
dwarf: do not assume unsigned 64bit integer for the enum value
2022-11-10 09:36:45 +01:00
Jakub Konka
2d5fbbb44e
Merge pull request #13485 from ziglang/arm64-non-null-actual
...
aarch64: optionals
2022-11-09 21:13:50 +01:00
Veikka Tuominen
61842da9f7
llvm: implement packed unions
...
Closes #13340
2022-11-09 17:14:38 +02:00
Jakub Konka
e83590d0e8
aarch64: pass some tests dealing with optionals
2022-11-08 13:59:47 +01:00