11777 Commits

Author SHA1 Message Date
Krzysztof Wolicki
b488f97e92 autodoc: Analyze and expose backing integer types for packed structs 2023-05-08 22:34:46 +02:00
Jacob Young
1f5aa7747f x86_64: finish optimizing mir tag usage
Final tag count is 95.
2023-05-08 07:36:20 -04:00
Jacob Young
ecb5feaf94 x86_64: continue to optimize mir tag usage
Migrate mnemonic literals to tuples that represent the compressed
storage.  225 tags left in use, many tags left to compress.
2023-05-08 07:36:20 -04:00
Jacob Young
6c14eb2863 x86_64: optimize mir tag usage
This moves all pseudo-instructions to a single `Mir.Inst.Tag` tag and
prepares to start coalescing similar mnemonics. 239 tags left in use.
2023-05-08 07:36:20 -04:00
Jacob Young
6778da4516 x86_64: implement binary operations for f16 and f16 vectors 2023-05-08 07:36:20 -04:00
Jacob Young
f8708e2c4d x86_64: implement @floor, @ceil, and @trunc for float vectors 2023-05-08 07:36:20 -04:00
Jacob Young
057139fda5 x86_64: implement binary operations for float vectors 2023-05-08 07:36:20 -04:00
Jacob Young
ea957c4cff x86_64: implement @sqrt for f16 scalars and vectors 2023-05-08 07:36:20 -04:00
Jacob Young
5c5da179fb x86_64: implement @sqrt for vectors 2023-05-08 07:36:20 -04:00
Jacob Young
05580b9453 x86_64: implement float cast from f16 to f64 2023-05-08 07:36:20 -04:00
Jacob Young
1c53f0a6b0 Dwarf: workaround crash 2023-05-08 07:36:20 -04:00
Jacob Young
406c403543 x86_64: add missing movsx and movzx encodings 2023-05-08 07:36:20 -04:00
Jacob Young
cba195c117 x86_64: implement some float and float vector movement
This allows actually storing value of these supported types in
registers, and not restricting them to stack slots.
2023-05-08 07:36:20 -04:00
Jacob Young
3a5e3c52e0 x86_64: implement @mulAdd 2023-05-08 07:36:20 -04:00
Jacob Young
4b75352c78 x86_64: implement packed floating point fields 2023-05-08 07:36:20 -04:00
Jacob Young
5d4288c5f6 x86_64: fix unordered float equality 2023-05-08 07:36:19 -04:00
Jacob Young
ae588a09f2 x86_64: implement f16 cmp 2023-05-08 07:36:19 -04:00
Jacob Young
32ab930f1d x86_64: implement f16 conversions when supported 2023-05-08 07:36:19 -04:00
Jacob Young
1a261917ce x86_64: implement @ctz and @clz for u128 2023-05-08 07:36:19 -04:00
Jacob Young
9bea854dc2 x86_64: implement @floor, @ceil, and @trunc 2023-05-08 07:36:19 -04:00
Dominic
5a3eca5d4c
Disallow named test decls with duplicate names 2023-05-08 10:59:06 +03:00
Loris Cro
e8cc1017da
Merge pull request #15594 from der-teufel-programming/autodoc-tldocs
Autodoc: Add gathering of top-level doc comments for imported files
2023-05-07 13:58:53 +02:00
Dominic
e1f5ad3cc8
Fix parsing of hexadecimal literals 2023-05-07 08:05:53 +00:00
Jacob Young
d71a43ec2c cbe: fix typos 2023-05-06 10:27:39 -07:00
Krzysztof Wolicki
c40a1ee224 autodoc: Add gathering of top-level doc comments for imported files 2023-05-06 02:51:53 +02:00
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