Ben Clayton 2f9a98870e tint: Implement sem::Load
The resolver now wraps sem::Expression objects with a sem::Load object
anywhere that the load rule is invoked. sem::Expression provides an
`UnwrapLoad()` method that returns the inner expression (or
passthrough, if no load is present), which is analaguous to
Type::UnwrapRef().

The logic for alias analysis in `RegisterLoadIfNeeded` has been folded
into the new `Resolver::Load` method.

Fixed up many transforms and tests. The only difference in output is
for a single SPIR-V backend test, where some IDs have changed due to
slight re-ordering of when expressions are generated.

There may be further clean-ups possible (e.g. removing unnecessary
calls to `UnwrapRef`, and simplifying places in the SPIR-V writer or
transforms that deal with memory accesses), but these can be addressed
in future patches.

Fixed: tint:1654
Change-Id: I69adecfe9251faae46546b64d0cdc29eea26cd4e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/99706
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-12-17 02:20:04 +00:00
..
2022-12-16 15:31:19 +00:00
2022-12-16 15:31:19 +00:00
2022-10-20 22:45:50 +00:00
2022-10-20 22:45:50 +00:00
2022-12-08 15:25:18 +00:00
2022-12-17 02:20:04 +00:00
2022-12-17 02:20:04 +00:00
2022-12-08 15:25:18 +00:00
2022-04-07 16:04:35 +00:00
2022-12-14 01:50:52 +00:00
2022-12-14 01:50:52 +00:00
2022-10-24 17:49:20 +00:00
2022-10-24 17:49:20 +00:00
2022-04-07 16:04:35 +00:00
2022-05-01 14:40:55 +00:00
2022-12-13 14:46:02 +00:00
2022-12-08 22:21:24 +00:00
2022-12-12 20:51:44 +00:00
2022-12-08 22:21:24 +00:00
2022-06-16 12:01:27 +00:00