Commit c9a1d76
Vulkan: Respect short-circuit more safely
Previously, if the LHS of `&&`/`||` or true/false expression of `?:`
didn't have side effects, non-short-circuiting SPIR-V instructions were
generated. This is not completely safe, as an expression without side
effect might still be invalid to execute, such as loading from an array
with an out-of-bounds index.
Bug: angleproject:465831139
Change-Id: I5c865919d7a36523ba25ea50151a9451aef46e36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7228207
Commit-Queue: Yuxin Hu <[email protected]>
Auto-Submit: Shahbaz Youssefi <[email protected]>
Reviewed-by: Yuxin Hu <[email protected]>
Commit-Queue: Shahbaz Youssefi <[email protected]>1 parent a326ff5 commit c9a1d76
File tree
5 files changed
+159
-27
lines changed- src
- compiler/translator/spirv
- tests
- gl_tests
5 files changed
+159
-27
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2341 | 2341 | | |
2342 | 2342 | | |
2343 | 2343 | | |
| 2344 | + | |
| 2345 | + | |
| 2346 | + | |
| 2347 | + | |
| 2348 | + | |
| 2349 | + | |
| 2350 | + | |
| 2351 | + | |
| 2352 | + | |
| 2353 | + | |
| 2354 | + | |
| 2355 | + | |
| 2356 | + | |
| 2357 | + | |
| 2358 | + | |
| 2359 | + | |
| 2360 | + | |
| 2361 | + | |
| 2362 | + | |
| 2363 | + | |
| 2364 | + | |
| 2365 | + | |
| 2366 | + | |
| 2367 | + | |
| 2368 | + | |
| 2369 | + | |
| 2370 | + | |
| 2371 | + | |
| 2372 | + | |
| 2373 | + | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
| 2388 | + | |
| 2389 | + | |
| 2390 | + | |
| 2391 | + | |
| 2392 | + | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
2344 | 2398 | | |
2345 | 2399 | | |
2346 | 2400 | | |
| |||
2353 | 2407 | | |
2354 | 2408 | | |
2355 | 2409 | | |
2356 | | - | |
2357 | | - | |
2358 | | - | |
2359 | | - | |
2360 | | - | |
2361 | | - | |
| 2410 | + | |
| 2411 | + | |
| 2412 | + | |
2362 | 2413 | | |
2363 | 2414 | | |
2364 | 2415 | | |
| |||
5300 | 5351 | | |
5301 | 5352 | | |
5302 | 5353 | | |
5303 | | - | |
5304 | | - | |
| 5354 | + | |
| 5355 | + | |
5305 | 5356 | | |
5306 | 5357 | | |
5307 | 5358 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1153 | 1153 | | |
1154 | 1154 | | |
1155 | 1155 | | |
| 1156 | + | |
1156 | 1157 | | |
1157 | 1158 | | |
1158 | 1159 | | |
| |||
1812 | 1813 | | |
1813 | 1814 | | |
1814 | 1815 | | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
1815 | 1822 | | |
1816 | 1823 | | |
1817 | 1824 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5096 | 5096 | | |
5097 | 5097 | | |
5098 | 5098 | | |
5099 | | - | |
5100 | | - | |
5101 | | - | |
5102 | | - | |
5103 | 5099 | | |
5104 | 5100 | | |
5105 | 5101 | | |
| |||
5167 | 5163 | | |
5168 | 5164 | | |
5169 | 5165 | | |
5170 | | - | |
5171 | | - | |
5172 | | - | |
5173 | | - | |
5174 | 5166 | | |
5175 | 5167 | | |
5176 | 5168 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3820 | 3820 | | |
3821 | 3821 | | |
3822 | 3822 | | |
| 3823 | + | |
| 3824 | + | |
| 3825 | + | |
| 3826 | + | |
| 3827 | + | |
| 3828 | + | |
| 3829 | + | |
| 3830 | + | |
| 3831 | + | |
| 3832 | + | |
| 3833 | + | |
| 3834 | + | |
| 3835 | + | |
| 3836 | + | |
| 3837 | + | |
| 3838 | + | |
| 3839 | + | |
| 3840 | + | |
| 3841 | + | |
| 3842 | + | |
| 3843 | + | |
| 3844 | + | |
| 3845 | + | |
| 3846 | + | |
| 3847 | + | |
| 3848 | + | |
| 3849 | + | |
| 3850 | + | |
| 3851 | + | |
| 3852 | + | |
| 3853 | + | |
| 3854 | + | |
| 3855 | + | |
| 3856 | + | |
| 3857 | + | |
| 3858 | + | |
| 3859 | + | |
| 3860 | + | |
| 3861 | + | |
| 3862 | + | |
| 3863 | + | |
| 3864 | + | |
| 3865 | + | |
| 3866 | + | |
| 3867 | + | |
| 3868 | + | |
| 3869 | + | |
| 3870 | + | |
| 3871 | + | |
| 3872 | + | |
| 3873 | + | |
| 3874 | + | |
| 3875 | + | |
| 3876 | + | |
| 3877 | + | |
| 3878 | + | |
| 3879 | + | |
| 3880 | + | |
| 3881 | + | |
| 3882 | + | |
| 3883 | + | |
| 3884 | + | |
| 3885 | + | |
| 3886 | + | |
| 3887 | + | |
| 3888 | + | |
| 3889 | + | |
| 3890 | + | |
| 3891 | + | |
| 3892 | + | |
| 3893 | + | |
| 3894 | + | |
| 3895 | + | |
| 3896 | + | |
| 3897 | + | |
| 3898 | + | |
| 3899 | + | |
| 3900 | + | |
| 3901 | + | |
| 3902 | + | |
| 3903 | + | |
| 3904 | + | |
| 3905 | + | |
| 3906 | + | |
| 3907 | + | |
| 3908 | + | |
| 3909 | + | |
| 3910 | + | |
| 3911 | + | |
| 3912 | + | |
| 3913 | + | |
| 3914 | + | |
| 3915 | + | |
3823 | 3916 | | |
3824 | 3917 | | |
3825 | 3918 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16692 | 16692 | | |
16693 | 16693 | | |
16694 | 16694 | | |
16695 | | - | |
16696 | | - | |
16697 | | - | |
16698 | | - | |
16699 | 16695 | | |
16700 | 16696 | | |
16701 | 16697 | | |
| |||
16983 | 16979 | | |
16984 | 16980 | | |
16985 | 16981 | | |
16986 | | - | |
16987 | | - | |
16988 | | - | |
16989 | | - | |
16990 | 16982 | | |
16991 | 16983 | | |
16992 | 16984 | | |
| |||
17053 | 17045 | | |
17054 | 17046 | | |
17055 | 17047 | | |
17056 | | - | |
17057 | | - | |
17058 | | - | |
17059 | 17048 | | |
17060 | 17049 | | |
17061 | 17050 | | |
| |||
0 commit comments