mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-22 12:49:45 +08:00
Reliably change cgraph_state to SSA form.
From-SVN: r162306
This commit is contained in:
parent
ca90e7f6c1
commit
157be8f67b
@ -1,3 +1,10 @@
|
||||
2010-07-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* tree-optimize.c (execute_all_early_local_passes): New. Change
|
||||
cgraph_state here ...
|
||||
(execute_early_local_optimizations): ... not here. Remove.
|
||||
(pass_early_local_passes, pass_all_early_optimizations): Update.
|
||||
|
||||
2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
|
||||
|
||||
* postreload.c (reload_combine_closest_single_use): Ignore the
|
||||
@ -11,6 +18,7 @@
|
||||
(reload_combine): Use control_flow_insn_p rather than JUMP_P.
|
||||
|
||||
2010-07-19 Bingfeng Mei <bmei@broadcom.com>
|
||||
|
||||
* ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
|
||||
of a loop.
|
||||
* loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
|
||||
|
@ -87,13 +87,27 @@ gate_all_early_local_passes (void)
|
||||
return (!seen_error () && !in_lto_p);
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
execute_all_early_local_passes (void)
|
||||
{
|
||||
/* Once this pass (and its sub-passes) are complete, all functions
|
||||
will be in SSA form. Technically this state change is happening
|
||||
a tad early, since the sub-passes have not yet run, but since
|
||||
none of the sub-passes are IPA passes and do not create new
|
||||
functions, this is ok. We're setting this value for the benefit
|
||||
of IPA passes that follow. */
|
||||
if (cgraph_state < CGRAPH_STATE_IPA_SSA)
|
||||
cgraph_state = CGRAPH_STATE_IPA_SSA;
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct simple_ipa_opt_pass pass_early_local_passes =
|
||||
{
|
||||
{
|
||||
SIMPLE_IPA_PASS,
|
||||
"early_local_cleanups", /* name */
|
||||
gate_all_early_local_passes, /* gate */
|
||||
NULL, /* execute */
|
||||
execute_all_early_local_passes, /* execute */
|
||||
NULL, /* sub */
|
||||
NULL, /* next */
|
||||
0, /* static_pass_number */
|
||||
@ -106,18 +120,6 @@ struct simple_ipa_opt_pass pass_early_local_passes =
|
||||
}
|
||||
};
|
||||
|
||||
static unsigned int
|
||||
execute_early_local_optimizations (void)
|
||||
{
|
||||
/* First time we start with early optimization we need to advance
|
||||
cgraph state so newly inserted functions are also early optimized.
|
||||
However we execute early local optimizations for lately inserted
|
||||
functions, in that case don't reset cgraph state back to IPA_SSA. */
|
||||
if (cgraph_state < CGRAPH_STATE_IPA_SSA)
|
||||
cgraph_state = CGRAPH_STATE_IPA_SSA;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Gate: execute, or not, all of the non-trivial optimizations. */
|
||||
|
||||
static bool
|
||||
@ -134,7 +136,7 @@ struct gimple_opt_pass pass_all_early_optimizations =
|
||||
GIMPLE_PASS,
|
||||
"early_optimizations", /* name */
|
||||
gate_all_early_optimizations, /* gate */
|
||||
execute_early_local_optimizations, /* execute */
|
||||
NULL, /* execute */
|
||||
NULL, /* sub */
|
||||
NULL, /* next */
|
||||
0, /* static_pass_number */
|
||||
|
Loading…
Reference in New Issue
Block a user