From: Richard Sandiford Date: Tue, 24 Oct 2023 10:30:53 +0000 (+0100) Subject: rtl-ssa: Don't insert after insns that can throw X-Git-Tag: basepoints/gcc-15~5253 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0eb4aceaa93eabd6153853b22e0e8c843de4184;p=thirdparty%2Fgcc.git rtl-ssa: Don't insert after insns that can throw rtl_ssa::can_insert_after didn't handle insns that can throw. Fixing that avoids a regression with a later patch. gcc/ * rtl-ssa.h: Include cfgbuild.h. * rtl-ssa/movement.h (can_insert_after): Replace is_jump with the more comprehensive control_flow_insn_p. --- diff --git a/gcc/rtl-ssa.h b/gcc/rtl-ssa.h index 7355c6c44636..3a3c8b50ee2d 100644 --- a/gcc/rtl-ssa.h +++ b/gcc/rtl-ssa.h @@ -49,6 +49,7 @@ #include "obstack-utils.h" #include "mux-utils.h" #include "rtlanal.h" +#include "cfgbuild.h" // Provides the global crtl->ssa. #include "memmodel.h" diff --git a/gcc/rtl-ssa/movement.h b/gcc/rtl-ssa/movement.h index d9945f491723..67370947dbde 100644 --- a/gcc/rtl-ssa/movement.h +++ b/gcc/rtl-ssa/movement.h @@ -61,7 +61,8 @@ move_earlier_than (insn_range_info range, insn_info *insn) inline bool can_insert_after (insn_info *insn) { - return insn->is_bb_head () || (insn->is_real () && !insn->is_jump ()); + return (insn->is_bb_head () + || (insn->is_real () && !control_flow_insn_p (insn->rtl ()))); } // Try to restrict move range MOVE_RANGE so that it is possible to