#include "flags.h"
#include "cgraph.h"
#include "tree-inline.h"
-#include "tree-mudflap.h"
#include "tree-pass.h"
#include "ggc.h"
#include "cgraph.h"
static unsigned int
execute_cleanup_cfg_post_optimizing (void)
{
- cleanup_tree_cfg ();
+ unsigned int todo = 0;
+ if (cleanup_tree_cfg ())
+ todo |= TODO_update_ssa;
+ maybe_remove_unreachable_handlers ();
cleanup_dead_labels ();
group_case_labels ();
if ((flag_compare_debug_opt || flag_compare_debug)
}
}
}
- return 0;
+ return todo;
}
struct gimple_opt_pass pass_cleanup_cfg_post_optimizing =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_dump_func /* todo_flags_finish */
- | TODO_remove_unused_locals
+ TODO_remove_unused_locals /* todo_flags_finish */
}
};
EXIT_BLOCK_PTR->count = (EXIT_BLOCK_PTR->count * count_scale
+ REG_BR_PROB_BASE / 2) / REG_BR_PROB_BASE;
+ FOR_EACH_EDGE (e, ei, ENTRY_BLOCK_PTR->succs)
+ e->count = (e->count * count_scale
+ + REG_BR_PROB_BASE / 2) / REG_BR_PROB_BASE;
+
FOR_EACH_BB (bb)
{
bb->count = (bb->count * count_scale
input_location = DECL_SOURCE_LOCATION (fndecl);
init_function_start (fndecl);
- /* Even though we're inside a function body, we still don't want to
- call expand_expr to calculate the size of a variable-sized array.
- We haven't necessarily assigned RTL to all variables yet, so it's
- not safe to try to expand expressions involving them. */
- cfun->dont_save_pending_sizes_p = 1;
-
gimple_register_cfg_hooks ();
bitmap_obstack_initialize (®_obstack); /* FIXME, only at RTL generation*/