joachimschmidt557
09122650ba
stage2 AArch64: bump up alignment of stack items fitting in regs
...
This enables us to use more efficient loading and storing for these
small stack items
2023-01-03 19:56:09 +01:00
kcbanner
fc84b233ee
skip "truncate to non-power-of-two integers from 128-bit" on non-llvm
2023-01-02 13:56:32 -07:00
kcbanner
676e4f3824
cbe: changes to get zig2.c compiling under msvc
...
- Add cpuid / getXCR0 functions for the cbe to use instead of asm blocks
- Don't cast between 128 bit types during truncation
- Fixup truncation to use functions for shifts / adds
- Fixup float casts for undefined values
- Add test for 128 bit integer truncation
2023-01-01 16:44:29 -05:00
joachimschmidt557
d6e6162081
stage2 AArch64: unify callee-preserved regs on all targets
...
also enables many passing behavior tests
2022-12-27 21:17:52 +08:00
Veikka Tuominen
08b2d491bc
update usages of @call
2022-12-13 13:14:20 +02:00
Koakuma
f9e9ba784f
stage2: sparc64: Skip unimplemented tests
2022-12-10 21:51:46 +07:00
Andrew Kelley
1310ef7577
disable failing behavior tests with -ofmt=c -target x86_64-windows
...
and enable CI checks for the C backend on Windows.
2022-12-07 04:01:04 -05:00
Andrew Kelley
c8aba15c22
remove references to stage1 in behavior tests
...
Good riddance.
2022-12-06 19:06:48 -07:00
Jacob Young
81c271cc62
cbe: don't emit extern decls that are already exported
2022-12-03 08:21:03 -05:00
Jacob Young
fdedd62365
cbe: use memcpy for underaligned loads and stores
2022-12-02 22:21:24 -05:00
Veikka Tuominen
6ded2d2adb
cbe: disable failing behavior test on aarch64
2022-12-01 12:18:10 +02:00
Veikka Tuominen
63ae7899ae
cbe: ensure test and tagName function names are unique
2022-11-30 15:14:33 +02:00
Veikka Tuominen
6f5a438946
AstGen: unstack block scope when creating opaque type
...
Closes #13697
2022-11-29 21:44:08 +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
Jacob Young
91fe0b80a2
cbe: fix threadlocal
2022-11-01 20:38:51 -04:00
Jacob Young
a77d89afe3
behavior: enable fixed cbe tests
2022-10-30 15:38:50 -04:00
Jacob Young
a12535f501
cbe: fix global access
2022-10-25 05:11:28 -04:00
Jacob Young
6a4266d62a
cbe: fix infinite recursion on recursive types
2022-10-25 05:11:28 -04:00
Jacob Young
525dcaecba
behavior: enable stage2_c tests that are currently passing
...
Also fix C warnings triggered by these tests.
2022-10-25 05:11:28 -04:00
r00ster91
51d9db8569
fix(text): hyphenate "comptime" adjectives
2022-10-05 21:19:30 +02:00
Andrew Kelley
ab3ac291ac
Merge remote-tracking branch 'origin/master' into llvm15
2022-09-11 20:26:53 -07:00
joachimschmidt557
b976997e16
stage2 ARM: implement ptr_elem_val
2022-09-09 19:17:18 +02:00
joachimschmidt557
3794f2c493
stage2 ARM: implement struct_field_val for registers
2022-09-09 19:17:18 +02:00
joachimschmidt557
261fec8036
stage2 ARM: amend implementation of various AIR instructions
...
- unwrap_errunion_err for registers
- unwrap_errunion_payload for registers
- ptr_slice_len_ptr for all MCValues
- ptr_slice_ptr_ptr for all MCValues
2022-09-09 19:17:17 +02:00
Andrew Kelley
3c506c8aaa
disable tests failing due to LLVM 15 regressions
2022-08-29 22:58:24 -07:00
Veikka Tuominen
c17793b487
Sema: ignore current declaration in ambiguous reference error
...
Closes #12429
2022-08-16 16:37:27 +03:00
Andrew Kelley
9964324856
disable flaky behavior test
...
see #12208
2022-07-23 20:03:50 -07:00
Andrew Kelley
e8ce1728e9
disable regressed wasm32 behavior tests from LLVM 14
2022-07-05 15:46:12 -07:00
Andrew Kelley
c3ae909e93
Revert "AstGen: preserve inferred ptr result loc for breaks"
...
This reverts commit 8bf3e1f8d0902abd4133e2729b3625c25011c3ff, which
introduced miscompilations for peer expressions any time they needed
coercions to runtime types.
I opened #11957 as a proposal to accomplish the goal of the reverted
commit.
Closes #11898
2022-06-28 18:38:25 -07:00
joachimschmidt557
960c142060
stage2 ARM: implement basic intCast and error union wrapping
2022-06-25 21:16:51 +02:00
Koakuma
672d6df429
stage2: sparc64: Skip Sema-failing tests for now
2022-06-24 21:19:33 +07:00
Veikka Tuominen
eaa6b04c3c
Sema: skip decl causing namespace lookup when doing lookup
2022-06-11 11:02:56 +03:00
Veikka Tuominen
84000aa820
Sema: fix inline call of func using ret_ptr with comptime only type
2022-06-06 13:11:50 -07:00
Veikka Tuominen
8fa88c88c2
AstGen: fix coercion scope type when stores are eliminated
2022-06-06 13:11:50 -07:00
Veikka Tuominen
a040ccb42f
Sema: fix coerce result ptr outside of functions
2022-06-06 13:11:50 -07:00
Veikka Tuominen
9431100736
Sema: apply previous changes to validateUnionInit
2022-06-01 13:01:39 +03:00
Veikka Tuominen
36df79cd37
stage2: ignore generic return type when hashing function type
...
Generic parameter types are already ignored.
2022-05-31 16:43:58 +03:00
Veikka Tuominen
febc7d3cd6
Sema: take dbg_stmt into account in zirResolveInferredAlloc
2022-05-31 16:22:00 +03:00
Veikka Tuominen
0e8307789a
AstGen: add tuple aware elem_type_index
2022-05-29 13:19:03 +03:00
Veikka Tuominen
c7b778992e
AstGen: improve generated Zir for array init exprs
2022-05-29 13:19:03 +03:00
joachimschmidt557
ddd5b57045
stage2 AArch64: complete genTypedValue
2022-05-27 16:43:11 -04:00
Veikka Tuominen
8bf3e1f8d0
AstGen: preserve inferred ptr result loc for breaks
2022-05-27 10:29:24 +03:00
Jakub Konka
6d32498c55
x64: re-enable behavior tests
2022-05-19 19:39:34 +02:00
Andrew Kelley
00f3d84f38
LLVM: support mixing extern and export with the same symbol name
2022-05-17 23:50:38 -07:00
sin-ack
032c722d20
Sema: Fix many-pointer array concatenation at comptime ( #11512 )
...
* Sema: Correctly determine whether array_cat lhs and rhs are single ptrs
Many-pointers are also not single-pointers and wouldn't be considered
here. This commit makes the conditions use the appropriately-named
isSinglePointer instead.
* Sema: Correctly obtain ArrayInfo for many-pointer concatenation
Many-pointers at comptime have a known size like slices and can be used
in array concatenation. This fixes a stage1 regression.
* test: Add comptime manyptr concatenation test
Co-authored-by: sin-ack <sin-ack@users.noreply.github.com>
2022-04-29 22:53:06 -04:00
joachimschmidt557
d9d9fea6ae
stage2 AArch64: Add ldrsb, ldrsh instructions
2022-04-19 22:40:48 +02:00
joachimschmidt557
f95a8ddafa
stage2 AArch64: Implement basic truncate functionality
2022-04-19 22:39:14 +02:00
Veikka Tuominen
4911d39769
AstGen: handle rl_ty_inst for mutable variables
2022-04-15 11:17:06 +03:00
Andrew Kelley
4dd65316b7
AstGen: coerce break operands of labeled blocks
...
Similar code was already in place for conditional branches. This updates
AstGen to do the same for labeled blocks. It takes advantage of the
`store_to_block_ptr` instructions by mutating them in place to become
`as` instructions, coercing the break operands before they are returned
from the block.
2022-03-28 18:28:08 -07:00
Veikka Tuominen
a415fe0bc0
AstGen: clear rl_ty_inst in setBreakResultLoc if one is not provided
2022-03-28 13:05:08 -07:00