Commit 6f1873a1 by Jan Hubicka Committed by Jan Hubicka

tree-pass.h (pass_fixup_cfg): New pass.

	* tree-pass.h (pass_fixup_cfg): New pass.
	* ipa-inline.c (inline_transform): Set
	always_inline_functions_inlined/after_inlining.
	* tree-optimize.c (execute_fixup_cfg): Do not set them here.
	(pass_fixup_cfg): New pass.
	* passes.c (init_optimization_passes): Add fixup_cfg.

From-SVN: r145191
parent 08cf8f58
2009-03-28 Jan Hubicka <jh@suse.cz>
* tree-pass.h (pass_fixup_cfg): New pass.
* ipa-inline.c (inline_transform): Set
always_inline_functions_inlined/after_inlining.
* tree-optimize.c (execute_fixup_cfg): Do not set them here.
(pass_fixup_cfg): New pass.
* passes.c (init_optimization_passes): Add fixup_cfg.
2009-03-28 Richard Guenther <rguenther@suse.de> 2009-03-28 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38458 PR tree-optimization/38458
......
...@@ -1755,6 +1755,8 @@ inline_transform (struct cgraph_node *node) ...@@ -1755,6 +1755,8 @@ inline_transform (struct cgraph_node *node)
todo = optimize_inline_calls (current_function_decl); todo = optimize_inline_calls (current_function_decl);
timevar_pop (TV_INTEGRATION); timevar_pop (TV_INTEGRATION);
} }
cfun->always_inline_functions_inlined = true;
cfun->after_inlining = true;
return todo | execute_fixup_cfg (); return todo | execute_fixup_cfg ();
} }
......
...@@ -536,6 +536,7 @@ init_optimization_passes (void) ...@@ -536,6 +536,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_early_local_passes); NEXT_PASS (pass_early_local_passes);
{ {
struct opt_pass **p = &pass_early_local_passes.pass.sub; struct opt_pass **p = &pass_early_local_passes.pass.sub;
NEXT_PASS (pass_fixup_cfg);
NEXT_PASS (pass_tree_profile); NEXT_PASS (pass_tree_profile);
NEXT_PASS (pass_cleanup_cfg); NEXT_PASS (pass_cleanup_cfg);
NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_init_datastructures);
......
...@@ -293,9 +293,6 @@ execute_fixup_cfg (void) ...@@ -293,9 +293,6 @@ execute_fixup_cfg (void)
gimple_stmt_iterator gsi; gimple_stmt_iterator gsi;
int todo = gimple_in_ssa_p (cfun) ? TODO_verify_ssa : 0; int todo = gimple_in_ssa_p (cfun) ? TODO_verify_ssa : 0;
cfun->after_inlining = true;
cfun->always_inline_functions_inlined = true;
if (cfun->eh) if (cfun->eh)
FOR_EACH_BB (bb) FOR_EACH_BB (bb)
{ {
...@@ -333,6 +330,25 @@ execute_fixup_cfg (void) ...@@ -333,6 +330,25 @@ execute_fixup_cfg (void)
return todo; return todo;
} }
struct gimple_opt_pass pass_fixup_cfg =
{
{
GIMPLE_PASS,
NULL, /* name */
NULL, /* gate */
execute_fixup_cfg, /* execute */
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
0, /* tv_id */
PROP_cfg, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
0 /* todo_flags_finish */
}
};
/* Do the actions required to initialize internal data structures used /* Do the actions required to initialize internal data structures used
in tree-ssa optimization passes. */ in tree-ssa optimization passes. */
......
...@@ -309,6 +309,7 @@ extern struct gimple_opt_pass pass_tree_profile; ...@@ -309,6 +309,7 @@ extern struct gimple_opt_pass pass_tree_profile;
extern struct gimple_opt_pass pass_early_tree_profile; extern struct gimple_opt_pass pass_early_tree_profile;
extern struct gimple_opt_pass pass_cleanup_cfg; extern struct gimple_opt_pass pass_cleanup_cfg;
extern struct gimple_opt_pass pass_referenced_vars; extern struct gimple_opt_pass pass_referenced_vars;
extern struct gimple_opt_pass pass_fixup_cfg;
extern struct gimple_opt_pass pass_sra; extern struct gimple_opt_pass pass_sra;
extern struct gimple_opt_pass pass_sra_early; extern struct gimple_opt_pass pass_sra_early;
extern struct gimple_opt_pass pass_tail_recursion; extern struct gimple_opt_pass pass_tail_recursion;
......
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