Commit Graph

442 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
9002209a14 linker/test: avoid using std::env entirely. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
a48588b11b Update spirt for better OpExtInst support (https://github.com/EmbarkStudios/spirt/pull/45). 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
2c2a3bc31c Improve custom debuginfo with aggressive deduplication. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
779951bc8d Fix off-by-one in column numbers in panic debugPrintf traces. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
88457ae249 custom_insts: group all debugPrintf-like inputs of Abort together. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
603f9894d6 Update spirt for DataInstForm interning. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
b3670b2303 spirt_passes/reduce: fix long-standing bug involving chained replacements. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
7f508ba86c linker: use OutputFilenames::temp_path_ext for critical dumping, even without --dump-*. 2023-07-25 12:07:36 +03:00
Eduard-Mihai Burtescu
1abd1cf43b Show panic! messages via debugPrintf, even including some runtime arguments ({u,i,f}32 as {} or {:?}). 2023-07-21 21:13:49 +03:00
Eduard-Mihai Burtescu
a0347e28c0 Allow -C debuginfo=2, but require -Zinline-mir=off, for panic! format_args! removal. 2023-07-21 21:13:49 +03:00
Eduard-Mihai Burtescu
af2a9ee445 Add specialization constants via #[spirv(spec_constant(id = 123))] x: u32 entry-point inputs. 2023-07-21 12:27:17 +03:00
Eduard-Mihai Burtescu
34e1c90c32 Improve abort/panic messages to be more distinctive. 2023-07-20 20:26:15 +03:00
Eduard-Mihai Burtescu
4252427f89 Add debugPrintf-based panic reporting, controlled via spirv_builder::ShaderPanicStrategy. 2023-07-18 22:40:57 +03:00
Eduard-Mihai Burtescu
a389a7993f Remove mentions of 0.4 pre-releases and try making spirv-builder/README.md more readable. 2023-07-15 01:03:08 +03:00
Eduard-Mihai Burtescu
ce8c3f8f4c Lower aborts (incl. panics) to "return from entry-point", instead of infinite loops. 2023-07-07 08:33:39 +03:00
Eduard-Mihai Burtescu
dbada91cb7 rustup: update to nightly-2023-05-27. 2023-06-08 15:54:23 +03:00
Eduard-Mihai Burtescu
4a987f3eb0 Add rustfmt.toml with version = "Two" to enable formatting array patterns. 2023-06-03 10:46:57 +03:00
Eduard-Mihai Burtescu
54d98c882f builder: generalize the panic format_args! remover to handle runtime args. 2023-06-02 11:46:02 +03:00
Eduard-Mihai Burtescu
e9cdb9666b rustup: update to nightly-2023-04-15. 2023-06-02 11:46:02 +03:00
Eduard-Mihai Burtescu
9011856b00 custom_inst: add {Push,Pop}InlinedCallFrame and emit them in the inliner. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
08371d3264 spirt_passes/diagnostics: track uses of global variables more accurately. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
7d99248b29 spirt_passes/diagnostics: also recover zombie Spans from their own attrs. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
0557036fb1 Preserve all intra-function annotations in both specializer and inline. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
ecaefff584 entry: fix entry-point stub spans (to point to the actual fn name). 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
344605fde8 custom_insts: make SetDebugSrcLoc have a range instead of just the starting location. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
c5dcd035b1 Add custom_insts for our own OpExtInsts, and use it for some debuginfo. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
69349b1b9d linker/dce: use FxIndexSet instead of FxHashSet for the "roots" set. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
0160d1dc75 linker/zombies: keep &Instruction for OpLine, instead of extracting operands. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
a42b7edbea Rename decorations to custom_decorations. 2023-06-02 00:32:50 +03:00
Eduard-Mihai Burtescu
7a44fa1e9c Apply suggestions from code review 2023-05-26 19:46:04 +03:00
Tendsin Mende
0db8e0a338 add decoration-id rewrite to inliner 2023-05-26 19:46:04 +03:00
Eduard-Mihai Burtescu
2bac7c1bf0 Remove --no-spirt and the old structurizer. 2023-05-19 15:14:33 +03:00
Eduard-Mihai Burtescu
6589f07b6f linker/test: remove non-SPIR-T codepaths. 2023-05-19 15:14:33 +03:00
Eduard-Mihai Burtescu
7e402553bc Use .rsplit_once("/src/") instead of .split_once("/src/"). 2023-04-21 22:03:38 +03:00
Eduard-Mihai Burtescu
f559a6b16e Integrate the SPIR-T qptr experiment. 2023-04-21 21:26:00 +03:00
Eduard-Mihai Burtescu
b5b651103d Actually generate an OpBitcast for illegal pointercasts. 2023-04-21 21:26:00 +03:00
Eduard-Mihai Burtescu
285eab4913 linker/specializer: fix some latent bugs that were hidden by zombies. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
ee8adbf566 linker: add a SPIR-T-based zombie reporting alternative, behind --no-early-report-zombies. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
dcd2c74054 Replace "system crate" vs "user code" distinction with zombies everywhere. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
633dff18bd linker/zombies: report all reachable zombies, w/ OpLine-based stack traces. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
abb1508f3f decorations: use custom string encodings instead of JSON. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
a73fc021f2 decorations: split off SrcLocDecoration from ZombieDecoration. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
c7351f9107 decorations: use line & column instead of a Span's BytePos. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
e7921fbf20 decorations: allow zero-copy deserialization of strings. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
b3067494e8 decorations: limit zombie SerializedSpans to an OpLine equivalent. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
ddfafd1f4a linker/zombies: regenerate rustc SourceFiles from OpSource. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
3fb4f9176a Emit OpSource for every source file referenced via OpLine. 2023-04-21 10:31:46 +03:00
Eduard-Mihai Burtescu
7b7015e8c6 builder: use undef bool instead of false, for checked_binop's zombie. 2023-04-05 14:21:56 +03:00
Eduard-Mihai Burtescu
1370631303 linker/inline: require legal ("memory object") pointer args in should_inline. 2023-04-04 12:16:05 +03:00
Eduard-Mihai Burtescu
17f18cfa10 linker/inline: merge args_invalid's functionality into should_inline. 2023-04-04 12:16:05 +03:00