aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
authorVineet Gupta <vineetg@rivosinc.com>2025-04-15 09:29:08 -0700
committerVineet Gupta <vineetg@rivosinc.com>2025-04-15 09:29:08 -0700
commitedb4867412895100b3addc525bc0dba0ea90c7f9 (patch)
treef6f02ddd5ad0a273dd17377c58d4e8443c7c1a17 /libstdc++-v3/include/std
parent517f7e3f02b4c945d2b4bdabb490961cf986391e (diff)
downloadgcc-edb4867412895100b3addc525bc0dba0ea90c7f9.zip
gcc-edb4867412895100b3addc525bc0dba0ea90c7f9.tar.gz
gcc-edb4867412895100b3addc525bc0dba0ea90c7f9.tar.bz2
RISC-V: vsetvl: elide abnormal edges from LCM computations [PR119533]
vsetvl phase4 uses LCM guided info to insert VSETVL insns, including a straggler loop for "mising vsetvls" on certain edges. Currently it asserts on encountering EDGE_ABNORMAL. When enabling go frontend with V enabled, libgo build hits the assert. The solution is to prevent abnormal edges from getting into LCM at all (my prior attempt at this just ignored them after LCM which is not right). Existing invalid_opt_bb_p () current does this for BB predecessors but not for successors which is what the patch adds. Crucially, the ICE/fix also depends on avoiding vsetvl hoisting past non-transparent blocks: That is taken care of by Robin's patch "RISC-V: Do not lift up vsetvl into non-transparent blocks [PR119547]" for a different yet related issue. Reported-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Signed-off-by: Vineet Gupta <vineetg@rivosinc.com> PR target/119533 gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): Check for EDGE_ABNOMAL. (pre_vsetvl::compute_lcm_local_properties): Initialize kill bitmap. Debug dump skipped edge. gcc/testsuite/ChangeLog: * go.dg/pr119533-riscv.go: New test. * go.dg/pr119533-riscv-2.go: New test.
Diffstat (limited to 'libstdc++-v3/include/std')
0 files changed, 0 insertions, 0 deletions