Commit 7a76df7f by Jeff Law Committed by Jeff Law

re PR rtl-optimization/52714 (ICE in fixup_reorder_chain, at cfglayout.c:880)

	PR rtl-optimization/52714
	* combine.c (try_combine): When splitting an unrecognized PARALLEL
	into two independent simple sets, if I3 is a jump, ensure the
	pattern we place into I3 is a (set (pc) ...)

	PR rtl-optimization/52714
	* gcc.c-torture/compile/pr52714.c: New test.

From-SVN: r208204
parent 728acca0
2014-02-27 Jeff Law <law@redhat.com>
PR rtl-optimization/52714
* combine.c (try_combine): When splitting an unrecognized PARALLEL
into two independent simple sets, if I3 is a jump, ensure the
pattern we place into I3 is a (set (pc) ...)
2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
Jeff Law <law@redhat.com>
......
......@@ -3712,6 +3712,9 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
#ifdef HAVE_cc0
&& !reg_referenced_p (cc0_rtx, set0)
#endif
/* If I3 is a jump, ensure that set0 is a jump so that
we do not create invalid RTL. */
&& (!JUMP_P (i3) || SET_DEST (set0) == pc_rtx)
)
{
newi2pat = set1;
......@@ -3726,6 +3729,9 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
#ifdef HAVE_cc0
&& !reg_referenced_p (cc0_rtx, set1)
#endif
/* If I3 is a jump, ensure that set1 is a jump so that
we do not create invalid RTL. */
&& (!JUMP_P (i3) || SET_DEST (set1) == pc_rtx)
)
{
newi2pat = set0;
......
2014-02-27 Jeff Law <law@redhat.com>
PR rtl-optimization/52714
* gcc.c-torture/compile/pr52714.c: New test.
2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
Jeff Law <law@redhat.com>
......
int __re_compile_fastmap(unsigned char *p)
{
unsigned char **stack;
unsigned size;
unsigned avail;
stack = __builtin_alloca(5 * sizeof(unsigned char*));
if (stack == 0)
return -2;
size = 5;
avail = 0;
for (;;) {
switch (*p++) {
case 0:
if (avail == size)
return -2;
stack[avail++] = p;
}
}
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment