[3/4] rtl-ssa: Don't insert after insns that can throw
Checks
Commit Message
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.
---
gcc/rtl-ssa.h | 1 +
gcc/rtl-ssa/movement.h | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
@@ -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"
@@ -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