mirror of git://gcc.gnu.org/git/gcc.git
tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there is a builtin_stack_save in a dominating BB.
2012-03-30 Martin Jambor <mjambor@suse.cz> * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there is a builtin_stack_save in a dominating BB. From-SVN: r185982
This commit is contained in:
parent
a15d0d03ae
commit
b9bebd7f03
|
@ -1,3 +1,8 @@
|
||||||
|
2012-03-30 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
|
* tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
|
||||||
|
is a builtin_stack_save in a dominating BB.
|
||||||
|
|
||||||
2012-03-29 Uros Bizjak <ubizjak@gmail.com>
|
2012-03-29 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
* config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
|
* config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
|
||||||
|
|
|
@ -1764,23 +1764,25 @@ gsi_prev_dom_bb_nondebug (gimple_stmt_iterator *i)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find a BUILT_IN_STACK_SAVE dominating gsi_stmt (I), and insert
|
/* Find a BUILT_IN_STACK_SAVE dominating gsi_stmt (I), and insert
|
||||||
a clobber of VAR before each matching BUILT_IN_STACK_RESTORE. */
|
a clobber of VAR before each matching BUILT_IN_STACK_RESTORE.
|
||||||
|
|
||||||
|
It is possible that BUILT_IN_STACK_SAVE cannot be find in a dominator when a
|
||||||
|
previous pass (such as DOM) duplicated it along multiple paths to a BB. In
|
||||||
|
that case the function gives up without inserting the clobbers. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
insert_clobbers_for_var (gimple_stmt_iterator i, tree var)
|
insert_clobbers_for_var (gimple_stmt_iterator i, tree var)
|
||||||
{
|
{
|
||||||
bool save_found;
|
|
||||||
gimple stmt;
|
gimple stmt;
|
||||||
tree saved_val;
|
tree saved_val;
|
||||||
htab_t visited = NULL;
|
htab_t visited = NULL;
|
||||||
|
|
||||||
for (save_found = false; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i))
|
for (; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i))
|
||||||
{
|
{
|
||||||
stmt = gsi_stmt (i);
|
stmt = gsi_stmt (i);
|
||||||
|
|
||||||
if (!gimple_call_builtin_p (stmt, BUILT_IN_STACK_SAVE))
|
if (!gimple_call_builtin_p (stmt, BUILT_IN_STACK_SAVE))
|
||||||
continue;
|
continue;
|
||||||
save_found = true;
|
|
||||||
|
|
||||||
saved_val = gimple_call_lhs (stmt);
|
saved_val = gimple_call_lhs (stmt);
|
||||||
if (saved_val == NULL_TREE)
|
if (saved_val == NULL_TREE)
|
||||||
|
@ -1792,7 +1794,6 @@ insert_clobbers_for_var (gimple_stmt_iterator i, tree var)
|
||||||
|
|
||||||
if (visited != NULL)
|
if (visited != NULL)
|
||||||
htab_delete (visited);
|
htab_delete (visited);
|
||||||
gcc_assert (save_found);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Detects a __builtin_alloca_with_align with constant size argument. Declares
|
/* Detects a __builtin_alloca_with_align with constant size argument. Declares
|
||||||
|
|
Loading…
Reference in New Issue