diff options
author | Juzhe-Zhong <juzhe.zhong@rivai.ai> | 2023-12-13 13:48:11 +0800 |
---|---|---|
committer | Pan Li <pan2.li@intel.com> | 2023-12-13 20:01:31 +0800 |
commit | ef21ae5c45f3b79a36fadc1cb5723c095e2965ad (patch) | |
tree | fa5c9553bb50ee52d653ccf987a03504dd80981e /gcc/fortran | |
parent | 90be333ad515b6126ce6dfe37aff6eb6b442b4ed (diff) | |
download | gcc-ef21ae5c45f3b79a36fadc1cb5723c095e2965ad.zip gcc-ef21ae5c45f3b79a36fadc1cb5723c095e2965ad.tar.gz gcc-ef21ae5c45f3b79a36fadc1cb5723c095e2965ad.tar.bz2 |
RISC-V: Postpone full available optimization [VSETVL PASS]
Fix VSETVL BUG that AVL is polluted
.L15:
li a3,9
lui a4,%hi(s)
sw a3,%lo(j)(t2)
sh a5,%lo(s)(a4) <--a4 is hold the address of s
beq t0,zero,.L42
sw t5,8(t4)
vsetvli zero,a4,e8,m8,ta,ma <<--- a4 as avl
Actually, this vsetvl is redundant.
The root cause we include full available optimization in LCM local data computation.
full available optimization should be after LCM computation.
PR target/112929
PR target/112988
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc
(pre_vsetvl::compute_lcm_local_properties): Remove full available.
(pre_vsetvl::pre_global_vsetvl_info): Add full available optimization.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/vsetvl/pr112929.c: New test.
* gcc.target/riscv/rvv/vsetvl/pr112988.c: New test.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions