From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7923) id 497963857C40; Wed, 6 Dec 2023 23:33:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 497963857C40 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1701905593; bh=FYIc1NkjFcU92evQOWddveI34B4RFpBsF/09l9Zir4I=; h=From:To:Subject:Date:From; b=vEa1kubrIVSu/+5lPKU/TfpRwO8JSDPrPbemWJpiSBbcR8KQ4iYkLxuDm31n9aDKn aEfMazNzrdiGhNsXlYbJ+9PZJu9ZcQ0JWzaU39nNIpvwYAjscplZ2PJc7FWniaxHuv 72luy6ZdqflyfB+1YM3TA8yhoWa4LvoWUbzFY/Ww= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Patrick O'Neill To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-6237] RISC-V: Fix PR112888 ICE X-Act-Checkin: gcc X-Git-Author: Juzhe-Zhong X-Git-Refname: refs/heads/master X-Git-Oldrev: 09a08df71939cc0035ebae85220ff0214a38fb7c X-Git-Newrev: db642d60ee81cd99d55f4e228d01de704b5b7cfa Message-Id: <20231206233313.497963857C40@sourceware.org> Date: Wed, 6 Dec 2023 23:33:13 +0000 (GMT) List-Id: https://gcc.gnu.org/g:db642d60ee81cd99d55f4e228d01de704b5b7cfa commit r14-6237-gdb642d60ee81cd99d55f4e228d01de704b5b7cfa Author: Juzhe-Zhong Date: Thu Dec 7 06:35:02 2023 +0800 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. Diff: --- gcc/config/riscv/riscv-vsetvl.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index 68f0be7e81d..90477f331d7 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 (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 (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);