+2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR bootstrap/66685
+ * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
+ there are no CALLs in the same pattern.
+
2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/61047
if (GET_CODE (x) == PARALLEL)
{
int j;
+ bool has_return_p = false;
for (j = XVECLEN (x, 0) - 1; j >= 0; j--)
if (GET_CODE (XVECEXP (x, 0, j)) == CALL)
return CALL_INSN;
else if (ANY_RETURN_P (XVECEXP (x, 0, j)))
- return JUMP_INSN;
+ has_return_p = true;
else if (GET_CODE (XVECEXP (x, 0, j)) == SET
&& GET_CODE (SET_DEST (XVECEXP (x, 0, j))) == PC)
return JUMP_INSN;
else if (GET_CODE (XVECEXP (x, 0, j)) == SET
&& GET_CODE (SET_SRC (XVECEXP (x, 0, j))) == CALL)
return CALL_INSN;
+ if (has_return_p)
+ return JUMP_INSN;
}
#ifdef GENERATOR_FILE
if (GET_CODE (x) == MATCH_OPERAND