Add transform::Simplify

Performs basic peephole optimizations on the AST.

Use in transform::Hlsl.

Required to have the DecomposeStorageAccess transform operate correctly with the output of InlinePointerLets transform, specifically when declaring `let` pointer expressions to storage buffers.

Fixed: tint:221
Fixed: tint:492
Fixed: tint:829
Change-Id: I536390921a6492378104e9c3c100d9e761294a27
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51921
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
Ben Clayton
2021-05-21 21:01:23 +00:00
committed by Tint LUCI CQ
parent 7b0c5e880e
commit ed86bf99b0
18 changed files with 515 additions and 3 deletions

View File

@@ -1 +1,9 @@
SKIP: error: cannot take the address of expression
RWByteAddressBuffer v : register(u0, space0);
[numthreads(1, 1, 1)]
void main() {
const int use = (asint(v.Load(0u)) + 1);
return;
}