Andrew Kelley
4ec27a4e25
C backend: implement vector reduce and overflow intrinsics
2022-11-22 23:33:58 -07:00
Veikka Tuominen
fc5209c139
llvm: fix x86_64 sysV ABI of big vectors on avx512 enabled CPUs
...
Closes #13629
2022-11-23 00:05:07 +02:00
Jakub Konka
114244f770
value: account for undef value for ptr in slice in hashUncoerced
2022-11-22 14:01:20 +02:00
Cody Tapscott
3fa226a80c
AstGen: Pop error trace for continue
...
PR #12837 handled control flow for break and return, but I forgot
about `continue`. This is effectively another break, so we just
need another `.restore_err_ret_index` ZIR instruction.
Resolves #13618 .
2022-11-22 14:00:41 +02:00
Andrew Kelley
7829c73ccf
disable failing arm-linux non-llvm backend tests
...
See #13623
2022-11-21 22:56:05 -07:00
Andrew Kelley
5ec9be0b03
CMake: choose native CPU instead of baseline by default
2022-11-21 20:16:08 -07:00
Andrew Kelley
670b4c5c02
Merge pull request #13292 from mitchellh/valgrind-arm64
...
std: valgrind client request support for aarch64
2022-11-21 19:50:26 -05:00
Veikka Tuominen
7c527c6dfe
Merge pull request #13585 from Vexu/stage2-fixes
...
Stage2 bug fixes
2022-11-21 13:48:23 +02:00
joachimschmidt557
89c374cd2d
stage2 ARM: misc fixes
...
- remove redundant `new` from `binOpRegisterNew` name
- fix mul_with_overflow
2022-11-21 08:23:07 +01:00
David Gonzalez Martin
79bba5a9e6
uefi: Delete unneeded alignment and use default 4K
...
Closes #7484 . Right now for UEFI targets an alignment
of 32 is being used for no reason other than support
a rare bytecode. As this is far from the standard case,
removing this alignment and using the default one,
as most toolchains do, should be the desired behavior.
2022-11-20 18:11:43 -05:00
Veikka Tuominen
bbcd959c2b
cli: warn about using --debug-compile-errors on a release build
2022-11-20 20:25:12 +02:00
Veikka Tuominen
d968d9d103
llvm: add attributes to the arguments of function pointer calls
...
Closes #13605
2022-11-20 20:25:12 +02:00
Veikka Tuominen
9e276d32f3
Sema: fix memory management of missing field error
...
Closes #13590
2022-11-20 20:25:12 +02:00
Veikka Tuominen
9e7293619f
llvm: aarch64 C ABI: pass byref params as mutable pointers
...
Closes #13597
2022-11-20 20:25:12 +02:00
Veikka Tuominen
08a00f0d1c
llvm: use alignment of ABI return type when it differs from raw return type
...
This would previously cause miscompilations when the ABI type had
bigger alignment than the raw type.
2022-11-20 20:25:12 +02:00
Veikka Tuominen
835a1f7f0c
Sema: fix missing error on mismatched array init count
...
Closes #13582
2022-11-20 20:25:12 +02:00
Veikka Tuominen
034507ef7c
Module: fix compile error for non-comptime-known global initializer
2022-11-20 20:25:12 +02: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
9877a7d36c
print_air: print ty_pl type
2022-11-20 20:25:11 +02:00
Veikka Tuominen
bc76873827
Sema: fix type check in zirIntToPtr
...
Simple fix: don't assume a ptr type before it has been checked.
Closes #13567
2022-11-20 20:25:11 +02:00
Veikka Tuominen
7b131a7cd4
Module: fix fieldSrcLoc for generated types
2022-11-20 20:25:11 +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
Veikka Tuominen
e5a3eb9777
Type: make hasRuntimeBitsAdvanced take AbiAlignmentAdvancedStrat
...
I wasn't able to create a reduced test case for this but the reasoning
can be seen in `abiAlignmentAdvancedUnion` where if `strat` was lazy
`hasRuntimeBitsAdvanced` would be given `null` instead of `sema`
which would cause eager evaluation when it is not valid or desired.
2022-11-20 20:25:11 +02:00
Veikka Tuominen
44f8714dfb
translate-c: cast unsuffixed floats to f64
2022-11-20 16:10:54 +02:00
Guillaume Wenzek
476b946802
compute LLVMTypes in ParamTypeIterator ( #13592 )
...
follow up on #13376 - fixes a bug in the x86_64 C ABI.
Co-authored-by: Veikka Tuominen <git@vexu.eu>
2022-11-20 01:14:02 -08:00
Andrew Kelley
78389af552
LLVM: add valgrind integration for x86 and aarch64
...
This also modifies the inline assembly to be more optimizable - instead of
doing explicit movs, we instead communicate to LLVM which registers we
would like to, somehow, have the correct values. This is how the x86_64
code already worked and thus allows the code to be unified across the
two architectures.
As a bonus, I threw in x86 support.
2022-11-19 19:32:45 -07:00
Jimmi Holst Christensen
adc3fafbc0
c backend: Output string literals for array init of bytes
2022-11-19 11:59:33 -05:00
Casey Banner
f746e11879
linker: fail the compilation if there were linker errors
...
There was no check for linker errors after flushing,
which meant that if the link failed the build would
continue and try to copy the non-existant exe, and
also write the manifest as if it had succeeded.
Also adds parsing of lld output, which is surfaced at the
end of the compilation with the other errors instead
of via stderr
2022-11-19 15:57:08 +02: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
Stevie Hryciw
e999f9f472
std: replace parseAppend with parseWrite in std.zig.string_literal
2022-11-18 19:22:42 +00:00
Stevie Hryciw
ca9e1760e8
fmt: canonicalize identifiers
2022-11-18 19:22:42 +00:00
Stevie Hryciw
d6d4f2481d
translate-c: use .identifier tokens in .identifier AST nodes
2022-11-18 19:22:42 +00:00
Stevie Hryciw
be737bb5cc
stage1: delete keywords
...
Backports 05cf449 to the C++ implementation.
2022-11-18 19:22:42 +00:00
Veikka Tuominen
8082323dfd
Merge pull request #13411 from dweiller/custom-test-runner
...
Custom test runner
2022-11-18 14:47:21 +02:00
kcbanner
88a0f3d0e5
windows: fix _tls_index not being defined if libc wasn't linked, and fix x86 name mangling
2022-11-17 11:08:21 -05:00
Guillaume Wenzek
699e7f721b
fix Nvptx backend outputing files at the top level of zig-cache
2022-11-16 18:49:04 -05:00
Andrew Kelley
07671838b0
Merge pull request #13561 from jacobly0/gcc-warnings
2022-11-16 10:38:44 -05:00
Veikka Tuominen
eed82ca287
Merge pull request #13558 from Vexu/stage2-fixes
...
Stage2 bug fixes to get third party projects building
2022-11-16 12:56:51 +02:00
Jacob Young
3ae04ed949
cbe: fix identifiers colliding with the short keyword
2022-11-16 01:26:37 -05:00
Jacob Young
a9c005e0e4
cbe: fixed tagged union initializers of a zero-bit field type
...
Fixes missing braces warnings on gcc 11.3.0.
2022-11-15 23:33:48 -05:00
Jacob Young
b82aec5a15
cbe: fix indexing with a zero-bit element type
...
Fixes void dereference warnings on gcc 11.3.0.
2022-11-15 23:33:48 -05:00
Jacob Young
b5b507a742
zig.h: match float comparison signatures from compiler rt
2022-11-15 23:33:48 -05:00
mike
a93fa29d8f
zig-cache: support windows drive + fwd-slash paths
...
closes #13539
2022-11-15 22:12:52 -05: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
fb09093d95
Module: call ensureDeclAnalyzed on builtin.test_functions
...
Previously the compiler would crash on branching on undefined values
if you tried using `zig test` with a freestanding target since there
was no start code referencing `builtin.test_functions`.
Closes #12554
2022-11-16 01:12:28 +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
b6b3462796
std.mem.Allocator: do not return undefined pointers from create
...
Closes #13517
2022-11-16 01:12:27 +02:00