Jacob Young
df4849c4f5
AstGen: cleanup previous fix
...
Allocating an extended tag is much cleaner and easier to reason about
than reusing an existing tag. The previous `.data = undefined` was a
clear indication that we don't have any data to store, and so might as
well store an extended tag in that space almost for free.
2023-05-05 16:09:59 -04:00
Jacob Young
da878dc077
AstGen: fix branch on undefined
...
`isAlwaysVoid` was being called with the undefined tag added by
`addOne`, causing non-deterministic behavior failures with release
builds of the compiler. Prevents the following random failure:
test/behavior/defer.zig:120:40: error: expected type 'error{One}', found 'void'
2023-05-05 15:09:35 -04:00
Jacob Young
d70853ba39
main: add debug dump-zir command
2023-05-05 11:00:44 -07:00
Krzysztof Wolicki
c63338712e
autodoc: Save switches as comptimeExpr with the code instead of analyzing it deeply;
...
simplified getBlockSource;
2023-05-05 02:41:23 +02:00
Krzysztof Wolicki
e363ffad90
autodoc: Better comptimeExpr code for blocks
2023-05-05 01:46:19 +02:00
Jacob Young
a19faa2481
x86_64: implement movement of more types
...
* f16
* f128
* vector
2023-05-03 04:25:14 -04:00
Jacob Young
6893f90887
x86_64: implement sqrt
2023-05-03 04:25:14 -04:00
Jacob Young
a5e50891cb
x86_64: optimize code size for double neg/abs
2023-05-03 04:25:14 -04:00
Jacob Young
36a39267b8
x86_64: fix feature confusion
2023-05-03 04:25:14 -04:00
Jacob Young
9ccdbca635
x86_64: implement fabs
2023-05-03 04:25:14 -04:00
Jacob Young
31429a4e86
codegen: handle variable and decl_ref_mut consistently
2023-05-03 04:25:14 -04:00
Jacob Young
40ef796278
x86_64: fix todo message typo
2023-05-03 04:25:14 -04:00
Jacob Young
f894ec264b
codegen: fix global nested field_ptr
2023-05-03 04:25:14 -04:00
Jacob Young
3a30b82741
x86_64: implement fieldParentPtr
2023-05-03 04:25:14 -04:00
Jacob Young
3f5592c114
x86_64: implement slice elem ptr for more MCValue tags
2023-05-03 04:25:14 -04:00
Jacob Young
f56f5af403
x86_64: fix global slices
2023-05-03 04:25:14 -04:00
DraagrenKirneh
b643c5dc91
Change compression detection to use content-type instead of the url ending
2023-05-03 08:23:50 +03:00
mlugg
152c7b1885
Implement multi-argument @min/@max and notice bounds
...
Resolves : #14039
2023-05-02 16:46:27 -07:00
Jacob Young
3b1ea390a3
x86_64: cleanup lazy symbols
...
In theory fixes updating lazy symbols during incremental compilation.
2023-05-01 19:22:53 -04:00
Jacob Young
db88b41472
x86_64: fix switch multi-prongs and mul/div flags clobber
2023-05-01 19:22:53 -04:00
Jakub Konka
565f8979cc
link: fix accessing source atom's symbol index in codegen
...
Since the owner can either be a `Decl` or a `LazySymbol` we need
to preserve this information at the codegen generate function level
so that we can then correctly work out the corresponding `Atom`
in the linker.
2023-05-01 19:22:52 -04:00
Jakub Konka
7064d7dbf0
Revert "x86_64: workaround tagName linker issues"
...
This reverts commit aac97b92532e7492b9145e1562e31c2e1fa66c15.
2023-05-01 19:22:52 -04:00
Jacob Young
0bdfb288cc
x86_64: workaround tagName linker issues
...
Pass extra pointer param with a linker ref when calling the lazy tagName
function to workaround not being able to lower linker refs during
codegen of a lazy func.
2023-05-01 19:22:52 -04:00
Jacob Young
47a34d038d
x86_64: implement tagName
2023-05-01 19:22:52 -04:00
Jacob Young
0489a63a43
Sema: use trap for backends that don't support panic_fn
...
Debuggers also catch trap, but the code is not allowed to continue.
2023-05-01 19:22:52 -04:00
Jacob Young
19bd7d12b0
x86_64: factor out lazy_sym
2023-05-01 19:22:52 -04:00
Jacob Young
372bc960b8
link: update decl-specific lazy symbols
2023-05-01 19:22:52 -04:00
Jacob Young
f37ca3fa73
link: cleanup lazy alignment
...
This gets the alignment from the code that creates a lazy symbol instead
of guessing it at every use.
2023-05-01 19:22:52 -04:00
Jacob Young
c81878978a
x86_64: optimize wide mul with overflow
2023-05-01 19:22:52 -04:00
Jacob Young
3c2636a83d
x86_64: implement more forms of wide mul with overflow
2023-05-01 19:22:52 -04:00
Jacob Young
c388960042
x86_64: fix large not and atomicrmw
2023-05-01 19:22:52 -04:00
Jacob Young
aaef5288f8
x86_64: fix 128-bit cmpxchg
2023-05-01 19:22:52 -04:00
Jacob Young
50f96c2949
x86_64: fix stack realignment
2023-05-01 19:22:52 -04:00
Jacob Young
db76ae8260
x86_64: fix emitting f80 globals
2023-05-01 19:22:52 -04:00
Jacob Young
1fd48815c6
x86_64: cleanup unneeded code
2023-05-01 19:22:52 -04:00
Jacob Young
4ec49da5f6
x86_64: implement a bunch of floating point stuff
2023-05-01 19:22:52 -04:00
Jacob Young
7c9891d7b7
x86_64: use std.log for debug logging
2023-05-01 19:22:52 -04:00
kcbanner
ec6ffaa1e4
sema: improve the error message when coercing to []anyopaque
2023-04-30 16:40:06 -07:00
Andrew Kelley
91b4729962
fix compilation error on 32-bit LLVM-enabled compiler builds
...
Fixes a regression introduced in
9295355985 that caused 32-bit builds with
`-Denable-llvm` to fail to build from source due to that common
u64/usize casting issue.
2023-04-30 12:14:02 -07:00
kcbanner
440b3df702
main: parse --dynamicbase linker arg
2023-04-29 22:19:02 +02:00
Andrew Kelley
c83ab7cc6a
Merge pull request #15503 from r00ster91/noinline
...
Sema: emit error for always_inline call of noinline function
2023-04-29 11:13:51 -07:00
Andrew Kelley
7baf0de807
Merge pull request #15458 from koachan/sparc64-codegen
...
stage2: sparc64: Yet another patchset for the selfhosted backend
2023-04-29 10:55:50 -07:00
Loris Cro
13aaa16ab2
Merge pull request #15478 from der-teufel-programming/autodoc-decltests
...
autodoc: Gather and display decltests
2023-04-29 18:23:18 +02:00
r00ster91
dff6efe369
Sema: disallow indexing non-tuple struct
...
Fixes #15497
2023-04-29 14:28:36 +03:00
r00ster91
bd8b5c25ec
Sema: emit error for always_inline call of noinline function
...
Fixes #15489
This also lays the groundwork for exposing the whether or not a function is
noinline in std.builtin.Fn as an `is_noinline: bool` field if we ever want to do that.
2023-04-29 04:19:58 +02:00
Koakuma
ccc9b8caf6
stage2: sparc64: Implement airPtrSliceLenPtr/airPtrSlicePtrPtr stubs
2023-04-28 16:46:04 -07:00
Koakuma
75a1360cdd
stage2: sparc64: Implement ASI load/store ops
2023-04-28 16:46:04 -07:00
Koakuma
83e6223192
stage2: sparc64: Implement airByteSwap
2023-04-28 16:46:04 -07:00
Koakuma
486ab3852e
stage2: sparc64: Factor machine offset calculation
2023-04-28 16:46:04 -07:00
Koakuma
cc2a5185d6
stage2: sparc64: Implement airStructFieldPtr
2023-04-28 16:46:03 -07:00