aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>2023-12-07 06:35:02 +0800
committerPatrick O'Neill <patrick@rivosinc.com>2023-12-06 14:41:24 -0800
commitdb642d60ee81cd99d55f4e228d01de704b5b7cfa (patch)
tree16e8b8268235203133d3b638c506f3a6043baf07
parent09a08df71939cc0035ebae85220ff0214a38fb7c (diff)
downloadgcc-db642d60ee81cd99d55f4e228d01de704b5b7cfa.zip
gcc-db642d60ee81cd99d55f4e228d01de704b5b7cfa.tar.gz
gcc-db642d60ee81cd99d55f4e228d01de704b5b7cfa.tar.bz2
RISC-V: Fix PR112888 ICE
Committed as it is obvious. gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (extract_single_source): new function. (pre_vsetvl::compute_lcm_local_properties): Fix ICE.
-rw-r--r--gcc/config/riscv/riscv-vsetvl.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc
index 68f0be7..90477f3 100644
--- a/gcc/config/riscv/riscv-vsetvl.cc
+++ b/gcc/config/riscv/riscv-vsetvl.cc
@@ -596,6 +596,14 @@ extract_single_source (set_info *set)
return first_insn;
}
+static insn_info *
+extract_single_source (def_info *def)
+{
+ if (!def)
+ return nullptr;
+ return extract_single_source (dyn_cast<set_info *> (def));
+}
+
static bool
same_equiv_note_p (set_info *set1, set_info *set2)
{
@@ -2692,9 +2700,7 @@ pre_vsetvl::compute_lcm_local_properties ()
def_lookup dl = crtl->ssa->find_def (resource, insn);
def_info *def
= dl.matching_set_or_last_def_of_prev_group ();
- gcc_assert (def);
- insn_info *def_insn = extract_single_source (
- dyn_cast<set_info *> (def));
+ insn_info *def_insn = extract_single_source (def);
if (def_insn && vsetvl_insn_p (def_insn->rtl ()))
{
vsetvl_info def_info = vsetvl_info (def_insn);