diff options
author | Juzhe-Zhong <juzhe.zhong@rivai.ai> | 2023-12-06 22:26:46 +0800 |
---|---|---|
committer | Pan Li <pan2.li@intel.com> | 2023-12-06 22:35:18 +0800 |
commit | c9d5b46a25547035e381b0246de5cb553ca8b02d (patch) | |
tree | 3e00bc1fb0e732482204d52711e7337e45e5f665 /gcc/rust/resolve/rust-ast-resolve-expr.cc | |
parent | c1e54c82a9e1855499ef7bb8827540e6a097532b (diff) | |
download | gcc-c9d5b46a25547035e381b0246de5cb553ca8b02d.zip gcc-c9d5b46a25547035e381b0246de5cb553ca8b02d.tar.gz gcc-c9d5b46a25547035e381b0246de5cb553ca8b02d.tar.bz2 |
RISC-V: Fix VSETVL PASS bug
As PR112855 mentioned, the VSETVL PASS insert vsetvli in unexpected location.
Due to 2 reasons:
1. incorrect transparant computation LCM data. We need to check VL operand defs and uses.
2. incorrect fusion of unrelated edge which is the edge never reach the vsetvl expression.
PR target/112855
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc
(pre_vsetvl::compute_lcm_local_properties): Fix transparant LCM data.
(pre_vsetvl::earliest_fuse_vsetvl_info): Disable earliest fusion for unrelated edge.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/pr112855.c: New test.
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-expr.cc')
0 files changed, 0 insertions, 0 deletions