mirror of git://gcc.gnu.org/git/gcc.git
arc.c (arc_ccfsm_post_advance): Also handle TYPE_UNCOND_BRANCH.
* gcc/config/arc/arc.c (arc_ccfsm_post_advance): Also handle
TYPE_UNCOND_BRANCH.
From-SVN: r204024
This commit is contained in:
parent
2ca4e2c229
commit
53ea364f18
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-10-24 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||||
|
|
||||||
|
* gcc/config/arc/arc.c (arc_ccfsm_post_advance): Also handle
|
||||||
|
TYPE_UNCOND_BRANCH.
|
||||||
|
|
||||||
2013-08-24 Tobias Burnus <burnus@net-b.de>
|
2013-08-24 Tobias Burnus <burnus@net-b.de>
|
||||||
|
|
||||||
PR other/33426
|
PR other/33426
|
||||||
|
|
|
||||||
|
|
@ -3711,12 +3711,16 @@ arc_ccfsm_record_condition (rtx cond, bool reverse, rtx jump,
|
||||||
static void
|
static void
|
||||||
arc_ccfsm_post_advance (rtx insn, struct arc_ccfsm *state)
|
arc_ccfsm_post_advance (rtx insn, struct arc_ccfsm *state)
|
||||||
{
|
{
|
||||||
|
enum attr_type type;
|
||||||
|
|
||||||
if (LABEL_P (insn))
|
if (LABEL_P (insn))
|
||||||
arc_ccfsm_at_label ("L", CODE_LABEL_NUMBER (insn), state);
|
arc_ccfsm_at_label ("L", CODE_LABEL_NUMBER (insn), state);
|
||||||
else if (JUMP_P (insn)
|
else if (JUMP_P (insn)
|
||||||
&& GET_CODE (PATTERN (insn)) != ADDR_VEC
|
&& GET_CODE (PATTERN (insn)) != ADDR_VEC
|
||||||
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
|
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
|
||||||
&& get_attr_type (insn) == TYPE_BRANCH)
|
&& ((type = get_attr_type (insn)) == TYPE_BRANCH
|
||||||
|
|| (type == TYPE_UNCOND_BRANCH
|
||||||
|
&& ARC_CCFSM_BRANCH_DELETED_P (state))))
|
||||||
{
|
{
|
||||||
if (ARC_CCFSM_BRANCH_DELETED_P (state))
|
if (ARC_CCFSM_BRANCH_DELETED_P (state))
|
||||||
ARC_CCFSM_RECORD_BRANCH_DELETED (state);
|
ARC_CCFSM_RECORD_BRANCH_DELETED (state);
|
||||||
|
|
@ -8120,6 +8124,7 @@ arc_ifcvt (void)
|
||||||
basic_block succ_bb
|
basic_block succ_bb
|
||||||
= BLOCK_FOR_INSN (NEXT_INSN (NEXT_INSN (PREV_INSN (insn))));
|
= BLOCK_FOR_INSN (NEXT_INSN (NEXT_INSN (PREV_INSN (insn))));
|
||||||
arc_ccfsm_post_advance (insn, statep);
|
arc_ccfsm_post_advance (insn, statep);
|
||||||
|
gcc_assert (!IN_RANGE (statep->state, 1, 2));
|
||||||
rtx seq = NEXT_INSN (PREV_INSN (insn));
|
rtx seq = NEXT_INSN (PREV_INSN (insn));
|
||||||
if (seq != insn)
|
if (seq != insn)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue