Veikka Tuominen
f2a7aba586
x86_64 llvm: correct lowering of ptr sized float struct
...
Closes #13211
2022-10-22 22:00:59 +03:00
Veikka Tuominen
3f41979061
replace some panics with try in C ABI tests
2022-10-22 14:52:26 +03:00
Veikka Tuominen
5e0b4836a1
stage2: implement RISCV C ABI
2022-10-22 14:52:26 +03:00
Veikka Tuominen
8fa91939a8
build.zig: separate C ABI tests from standalone tests
2022-10-22 11:31:41 +03:00
Veikka Tuominen
12a2ccfb45
make C ABI tests compile on powerpc
2022-10-22 11:31:41 +03:00
Veikka Tuominen
031c768cc8
add C ABI tests for simd vectors
2022-10-22 11:31:41 +03:00
Veikka Tuominen
9ae78a5890
stage2: implement ARM C ABI
...
Six new passing tests and the previously incorrectly passing
complex tests are now skipped.
2022-10-21 18:07:11 +03:00
Veikka Tuominen
972c39e2c0
Merge pull request #13219 from Vexu/stage2-fixes
...
Stage2 bug fixes
2022-10-21 12:11:49 +02:00
Veikka Tuominen
2609e33ab0
make C ABI tests compile on arm, mips and riscv
...
x86_64 24/25
x86 15/25
aarch64 25/25 - all
arm 18/25
mips 10/24
riscv64 13/25
wasm32 25/25 - all
2022-10-20 20:11:12 +03:00
Veikka Tuominen
646d927c79
stage2: fix handling of aarch64 C ABI float array like structs
...
Closes #11702
Closes #13125
2022-10-20 20:11:12 +03:00
Veikka Tuominen
07b6173cb8
delete failing recursive test
...
Don't forget to add these back when solving #12973
2022-10-20 20:11:12 +03:00
Veikka Tuominen
7e946bc790
make C ABI tests compile on i386
2022-10-20 20:11:12 +03:00
Veikka Tuominen
51491186cb
stage2: fix x86_64 C ABI of struct with array member
...
Closes #12185
2022-10-20 20:11:12 +03:00
Veikka Tuominen
ce95cc170b
Value: handle runtime_int in hashPtr
...
Closes #12702
2022-10-20 20:11:12 +03:00
Veikka Tuominen
9a52abf3b4
Sema: add missing calls to wip_captures.finalize
...
Closes #13171
2022-10-20 20:11:12 +03:00
Veikka Tuominen
3b60a6de2f
Sema: fix using runtime instructions inside typeof in comptime only blocks
...
Closes #13210
Follow up to 3ccd4907fbcd04ecddffb618a4b14581fd080279
2022-10-20 20:11:12 +03:00
Veikka Tuominen
c95a34b68f
stage2: improve source location of assignment
2022-10-20 20:11:00 +03:00
Veikka Tuominen
34e4b07d0c
Sema: allow runtime only instructions to be emitted in outside functions
...
It is possible to get comptime-known values from runtime-known values
for example the length of array. Allowing runtime only instructions to
be emitted outside function bodies allows these operations to happen.
In places where comptime-known values are required we have other methods
to ensure that and they usually result in more specific compile errors too.
Closes #12240
2022-10-20 20:11:00 +03:00
Veikka Tuominen
13897be0ab
Type: bitSizeOf non-packed structs should include padding
...
Closes #13214
2022-10-20 20:11:00 +03:00
Luuk de Gram
7d6596e979
Merge pull request #13218 from Luukdegram/fix-emulatable-step
...
std: CheckObject - correctly depend on its own step when creating an EmulatableRunStep
2022-10-19 08:36:14 +02:00
Veikka Tuominen
4aaff75c81
Sema: resolve tuple default values before hashing
...
Closes #12488
2022-10-19 01:38:19 +03:00
Veikka Tuominen
6582896ee0
Sema: remove unresolved inferred allocs
...
Closes #2557
2022-10-19 01:38:19 +03:00
Veikka Tuominen
4e134f6dcb
Sema: respect inline call semantics
...
If an argument is comptime-known but shouldn't be create an alloc
to store it in to get a runtime-known value.
2022-10-19 01:38:18 +03:00
Andrew Kelley
b120c819db
Merge pull request #13055 from alichraghi/m2m
...
all: rename `@maximum` to `@max` and `@minimum` to `@min`
2022-10-18 14:42:55 -04:00
Andrew Kelley
7c7d9e13d7
Sema: fix runtime int to enum with one possible value
2022-10-18 10:18:09 -07:00
Luuk de Gram
c0fe135ff3
test/link: remove redundant dependOn statements
...
`runAndCompare` will already depend on the `CheckObject` step itself
so it's not needed to also have the test step depend on the
check object step.
2022-10-18 17:20:08 +02:00
Jacob Young
687a7d38a0
value: implement Value.eqlAdvanced on slices
...
* Support comparison between implicitly casted array pointer and slice.
* Support comparison between slices with different value tags.
Closes #12700
2022-10-18 14:16:39 +02:00
Ali Chraghi
ca27055cda
all: rename @maximum to @max and @minimum to @min
2022-10-18 14:15:16 +03:00
GethDW
edc842ff18
stage2: implement packedStuctToInt for more types
2022-10-18 14:05:48 +03:00
jacobly0
bd0dd225e8
Sema: implement linksection on functions
...
* Sema: implement linksection on functions
* Implement function linksection in Sema.
* Don't clobber function linksection/align/addrspace in Sema.
* Fix copy-paste typo in tests.
* Add a bunch of missing test_step.dependOn.
* Fix checkInSymtab match.
Closes #12546
2022-10-18 14:02:10 +03:00
Andrew Kelley
ce3ffa5e1b
Merge pull request #11747 from Luukdegram/compiler-rt
...
compiler_rt: Move mem implementations from c.zig
2022-10-17 18:12:22 -04:00
Veikka Tuominen
be9a4a1f97
Sema: handle noreturn in boolBr
...
Closes #13112
2022-10-17 18:53:15 +03:00
Jacob Young
c7f9833238
Module: fix early exit conditions during compilation
...
* `--verbose-llvm-ir` should trigger analysis and codegen
* `-femit-asm` etc should trigger codegen even with `-fno-emit-bin`
Closes #12588
2022-10-15 14:18:35 -04:00
Jacob Young
cb0e22db4e
llvm: fix lowering of runtime refs to comptime-only decls
...
When we want a runtime pointer to a zero-bit value we use an undef
pointer, but what if we want a runtime pointer to a comptime-only value?
Normally, if `T` is a comptime-only type such as `*const comptime_int`,
then `*const T` would also be a comptime-only type, so anything
referencing a comptime-only value is usually also comptime-only, and
therefore not emitted to the executable.
However, what if instead we have a `*const anyopaque` pointing to a
comptime-only value? Certainly, `*const anyopaque` is a runtime type,
and so we need some runtime value to store, even when it happens to be
pointing to a comptime-only value. In this case we want to do the same
thing as we do when pointing to a zero-bit value, so we use
`hasRuntimeBits` to handle both cases instead of ignoring comptime.
Closes #12025
2022-10-15 14:17:25 -04:00
Guillaume Wenzek
419855c475
fix test
2022-10-15 10:39:19 -07:00
Guillaume Wenzek
b425d88737
re-enable nvptx tests
2022-10-15 10:39:19 -07:00
Jacob Young
400319872b
llvm: fix bug lowering aggregate_init with a byref sentinel
...
Closes #12972
2022-10-15 11:12:04 -04:00
Andrew Kelley
b4e3424594
Merge pull request #13100 from topolarity/powerpc64le
...
stage2: Fix softfloat support for PPC64(LE)
2022-10-15 10:05:00 -04:00
Luuk de Gram
74108bb9c0
test/link: fix Wasm archive test
...
As memcpy is now part of compiler-rt, we no longer expect
any imports in the binary.
2022-10-15 07:02:38 -07:00
Evan Haas
e4e1c21e1f
i386 ABI: Fix some sizes and alignments
...
This makes the following changes for i386:
long long and unsigned long long have 4 byte alignment on non-Windows
f64 (double) has 4-byte alignment on non-Windows
long double is 80 bits and has 4 byte alignment on mingw
long double on android is 64 bits, not 80: https://www.uclibc.org/docs/psABI-i386.pdf
Fixes #12453
Fixes #12987
2022-10-14 15:22:00 -04:00
Jacob Young
9b45dc1608
stage2: fix emitting asm and bin at the same time
...
This logic is copied from stage1.
Fixes #12800
2022-10-14 14:46:50 -04:00
Cody Tapscott
34863224c3
Re-enable mulAdd f128 tests on i386-linux
2022-10-13 12:53:30 -07:00
Cody Tapscott
1e278131e3
Re-enable @mulAdd f128 tests on aarch64-darwin
...
Closes #9900
2022-10-13 12:53:29 -07:00
Cody Tapscott
f035437b5d
Re-enable Vector f16 tests on Windows
...
Closes #4952
2022-10-13 12:53:20 -07:00
Cody Tapscott
b8c587eb40
tests: Enable PPC64LE as a test target
2022-10-13 12:53:20 -07:00
Cody Tapscott
83e2d3fb37
stage1: Skip new tests that never passed in stage1
...
This gets the behavior tests passing for stage1 again.
2022-10-13 12:53:20 -07:00
kkHAIKE
d987bf859e
Sema: add float128IntPartToBigInt to fix compare comptime float with int
2022-10-13 13:11:13 +02:00
Veikka Tuominen
3a8777a8bb
fix hyphenation in test case
...
Follow up to 51d9db856978610c24b3fed50a9550455a2eb64b
2022-10-12 16:10:57 +03:00
jacobly0
562ac8be48
codegen: add support for lowering .field_ptr on a slice
...
Closes #13068
2022-10-12 12:40:59 +03:00
Andrew Kelley
7ce1ee1bce
Merge pull request #13081 from r00ster91/docs
...
fix(text): hyphenation and other fixes
2022-10-12 05:26:11 -04:00