aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve
diff options
context:
space:
mode:
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>2023-12-06 22:26:46 +0800
committerPan Li <pan2.li@intel.com>2023-12-06 22:35:18 +0800
commitc9d5b46a25547035e381b0246de5cb553ca8b02d (patch)
tree3e00bc1fb0e732482204d52711e7337e45e5f665 /gcc/rust/resolve
parentc1e54c82a9e1855499ef7bb8827540e6a097532b (diff)
downloadgcc-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')
0 files changed, 0 insertions, 0 deletions