diff options
author | Juzhe-Zhong <juzhe.zhong@rivai.ai> | 2023-12-07 06:35:02 +0800 |
---|---|---|
committer | Patrick O'Neill <patrick@rivosinc.com> | 2023-12-06 14:41:24 -0800 |
commit | db642d60ee81cd99d55f4e228d01de704b5b7cfa (patch) | |
tree | 16e8b8268235203133d3b638c506f3a6043baf07 | |
parent | 09a08df71939cc0035ebae85220ff0214a38fb7c (diff) | |
download | gcc-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.cc | 12 |
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); |