tree 8ee4e7b9baa29a2b70159902be4c1341959c71b5
parent 9abacb34a5726d6cb40e798de48bc4f02b92808b
author Nathan Gauër <brioche@google.com> 1660658747 +0200
committer GitHub <noreply@github.com> 1660658747 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJi+6Q7CRBK7hj4Ov3rIwAAxlYIAB0lFpuw3rvOWQgON/CnryqG
 7scSqASaN5Ekhy/rVUO0OWMhkpCZEMC96ZhSJ6dw5N74QN4c357yfkm9grKpxEGu
 WsKzoPvsXv4x6seHzf4UUdbYlzdiSsrnk8oAzZl8xk8KkJPTPCANKqu4I6AiMzn9
 nOO61HrQrKWPZLq6QMytZ46+iuM7Rkc+cCZvBH3Mey7iLUkN1SmcdBA6TdokUcp9
 D4AiU4deCcWNVoskJu7tTF7Svgw2pG/Cpi2y3iQypMLCFsMeW9Y03EHJznhLDbtG
 P5o8vdk+1jXgT2nyL/qNjq3948oClKwPl/jlwQ0ckTts6a1dp2Rj9JQ63sVotTI=
 =IOhk
 -----END PGP SIGNATURE-----
 

spirv-opt: fix copy-propagate-arrays index opti on structs. (#4891)

* spirv-opt: fix copy-propagate-arrays index opti on structs.

As per SPIR-V spec:
OpAccessChain indices must be OpConstant when indexing into a structure.

This optimization tried to remove load cascade. But in some scenario
failed:

```c
cbuffer MyStruct {
    uint my_field;
};

uint main(uint index) {
    const uint my_array[1] = { my_field };
    return my_array[index]
}
```

This is valid as the struct is indexed with a constant index, and then
the array is indexed using a dynamic index.
The optimization would consider the local array to be useless and
generated a load directly into the struct.

* spirv-opt: prevent creation of unused instructions

Copy-propagate-arrays optimization pass would create unused constants,
even if the optimization not completed.
This was caused by the way we handled OpAccessChain squashing: we
only referenced constants, and had to create them upfront.

Fixes #4887
Signed-off-by: Nathan Gauër <brioche@google.com>