Andrew Kelley
cffbb32d31
Merge pull request #13872 from koachan/sparc64-codegen
...
stage2: sparc64: Some Air lowerings + skip unbuildable tests
2022-12-10 15:10:21 -05:00
Koakuma
f9e9ba784f
stage2: sparc64: Skip unimplemented tests
2022-12-10 21:51:46 +07:00
Koakuma
fb9357f06c
stage2: sparc64: Implement atomic ops
2022-12-10 21:11:14 +07:00
r00ster91
654e30069d
behavior and cases: more test coverage for old issues
...
Closes #2622
Closes #2727
Closes #6047
Closes #6947
Closes #6656
2022-12-10 12:34:42 +01:00
r00ster91
bf863878ac
behavior: add test coverage for slice and array-related issues
...
Closes #10684
Closes #6905
Closes #8646
2022-12-10 12:34:42 +01:00
r00ster91
7a8f7dcb8c
behavior: add test coverage for corrupted slice in release
...
Closes #7325
2022-12-10 12:34:42 +01:00
r00ster91
75f8c04d6d
behavior: add test coverage for slicing zero length array field of struct
...
Closes #11787
2022-12-10 12:33:17 +01:00
Veikka Tuominen
ee9fc54cd0
TypedValue: fix handling of tuples represented as empty_struct_value
2022-12-08 22:21:49 +02: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
e3b8658e65
cbe: add forward declarations for optionals and error unions
...
Arrays will have to wait for type rewrite.
2022-12-03 21:58:18 -05:00
Jacob Young
7fb6eb3d14
cbe: implement multiple exports of a symbols
2022-12-03 08:21:03 -05:00
Jacob Young
81c271cc62
cbe: don't emit extern decls that are already exported
2022-12-03 08:21:03 -05:00
Veikka Tuominen
0e38cc16d5
Sema: fix comparisons between lazy and runtime values
...
Closes #12498
2022-12-03 00:09:23 +02:00
Andrew Kelley
4071b22454
Merge pull request #13715 from Vexu/cbe
...
cbe bug fixes and improvements
2022-12-01 17:38:11 -05:00
Luuk de Gram
090deae41d
wasm: enable behavior tests for packed structs
2022-11-30 21:01:09 +01: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
63ae7899ae
cbe: ensure test and tagName function names are unique
2022-11-30 15:14:33 +02:00
Veikka Tuominen
6f9c7e33b9
llvm: implement union_init for packed unions
...
Closes #13664
2022-11-29 15:47:02 +02:00
kkHAIKE
ea590ece4b
Sema: optimize compare comptime float with int
2022-11-18 22:06:49 +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
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
Micah Switzer
ea54c9a375
Sema: resolve lazy align in zirReify for union fields
...
Closes #13435
2022-11-04 15:48:08 +02:00
Jacob Young
09763435a8
cbe: support arrays in more places
2022-11-01 20:39:06 -04:00
Jacob Young
071404ff65
cbe: fix optional access
2022-11-01 20:39:05 -04: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
48a2783969
cbe: implement optional slice representation change
2022-10-29 05:58:41 -04:00
Andrew Kelley
2991e4a454
Merge pull request #13288 from Vexu/opt-slice
...
Optimize size of optional slices (+ some fixes)
2022-10-27 22:09:17 -04:00
Veikka Tuominen
d03c47bf85
Sema: use runtime_value instead of creating allocs
2022-10-27 21:08:25 -04:00
Veikka Tuominen
4ac8ec4c5c
AstGen: fix refing inferred allocs
...
Closes #13285
2022-10-27 01:31:18 +03:00
Veikka Tuominen
78a7bb108a
llvm: handle namespace like packed structs
...
Closes #13159
Closes #13188
2022-10-27 01:31:18 +03:00
Jacob Young
6021edd7ce
cbe: add support for all float literals types
2022-10-25 05:22:55 -04:00
Jacob Young
1bab854868
cbe: implement 128-bit and fix smaller integer builtins
2022-10-25 05:11:29 -04:00
Jacob Young
8b6a3ba74e
cbe: fix typedef declaration order
2022-10-25 05:11:29 -04:00
Jacob Young
4765294ca4
cbe: get enough things working to support basic programs
...
* Enable advanced start support.
* Enable advanced test_runner support.
* Zig Language Reference's Hello World now works.
2022-10-25 05:11:29 -04:00
Jacob Young
912b84bbad
cbe: fix atomics
2022-10-25 05:11:29 -04:00
Jacob Young
b48417aed2
cbe: misc fixes
2022-10-25 05:11:29 -04:00
Jacob Young
e8bda9eb3a
cbe: implement ptr slice ptr
2022-10-25 05:11:29 -04:00
Jacob Young
5eafc10bf4
cbe: fix global access fix
2022-10-25 05:11:29 -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
Jacob Young
f81651932a
c: hacks to fix incompatible redeclaration of library function warnings
2022-10-25 05:11:28 -04:00
Cody Tapscott
77720e30aa
Re-factor: Change AstGen.ResultLoc to be a struct
...
This re-factor is intended to make it easier to track what kind of
operator/expression consumes a result location, without overloading the
ResultLoc union for this purpose.
This is used in the following commit to keep track of initializer
expressions of `const` variables to avoid popping error traces
pre-maturely. Hopefully this will also be useful for implementing
RLS temporaries in the future.
2022-10-21 11:22:46 -07:00
Veikka Tuominen
9a52abf3b4
Sema: add missing calls to wip_captures.finalize
...
Closes #13171
2022-10-20 20:11:12 +03: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
Veikka Tuominen
be9a4a1f97
Sema: handle noreturn in boolBr
...
Closes #13112
2022-10-17 18:53:15 +03:00