tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore if there is no outgoing edge.
* tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore if there is no outgoing edge. * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and integral types. From-SVN: r179165
This commit is contained in:
parent
8e19f5a1b3
commit
1ee0d66040
|
@ -1,3 +1,11 @@
|
|||
2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
|
||||
if there is no outgoing edge.
|
||||
|
||||
* tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
|
||||
integral types.
|
||||
|
||||
2011-09-25 Ira Rosen <ira.rosen@linaro.org>
|
||||
|
||||
* tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
|
||||
|
|
|
@ -3863,8 +3863,15 @@ cleanup_empty_eh (eh_landing_pad lp)
|
|||
return cleanup_empty_eh_unsplit (bb, e_out, lp);
|
||||
}
|
||||
|
||||
/* The block should consist only of a single RESX statement. */
|
||||
/* The block should consist only of a single RESX statement, modulo a
|
||||
preceding call to __builtin_stack_restore if there is no outgoing
|
||||
edge, since the call can be eliminated in this case. */
|
||||
resx = gsi_stmt (gsi);
|
||||
if (!e_out && gimple_call_builtin_p (resx, BUILT_IN_STACK_RESTORE))
|
||||
{
|
||||
gsi_next (&gsi);
|
||||
resx = gsi_stmt (gsi);
|
||||
}
|
||||
if (!is_gimple_resx (resx))
|
||||
return false;
|
||||
gcc_assert (gsi_one_before_end_p (gsi));
|
||||
|
|
|
@ -3172,8 +3172,8 @@ simple_iv (struct loop *wrto_loop, struct loop *use_loop, tree op,
|
|||
iv->no_overflow = false;
|
||||
|
||||
type = TREE_TYPE (op);
|
||||
if (TREE_CODE (type) != INTEGER_TYPE
|
||||
&& TREE_CODE (type) != POINTER_TYPE)
|
||||
if (!POINTER_TYPE_P (type)
|
||||
&& !INTEGRAL_TYPE_P (type))
|
||||
return false;
|
||||
|
||||
ev = analyze_scalar_evolution_in_loop (wrto_loop, use_loop, op,
|
||||
|
|
Loading…
Reference in New Issue