gate_rtl_pre (void)
{
return optimize > 0 && flag_gcse
- && optimize_function_for_speed_p (cfun);
+ && !cfun->calls_setjmp
+ && optimize_function_for_speed_p (cfun)
+ && dbg_cnt (pre);
}
static unsigned int
execute_rtl_pre (void)
{
int changed;
-
- if (cfun->calls_setjmp || !dbg_cnt (pre))
- return 0;
-
delete_unreachable_blocks ();
df_analyze ();
changed = one_pre_gcse_pass ();
gate_rtl_hoist (void)
{
return optimize > 0 && flag_gcse
- /* It does not make sense to run code hoisting unless we are optimizing
- for code size -- it rarely makes programs faster, and can make then
- bigger if we did PRE (when optimizing for space, we don't run PRE). */
- && optimize_function_for_size_p (cfun);
+ && !cfun->calls_setjmp
+ /* It does not make sense to run code hoisting unless we are optimizing
+ for code size -- it rarely makes programs faster, and can make then
+ bigger if we did PRE (when optimizing for space, we don't run PRE). */
+ && optimize_function_for_size_p (cfun)
+ && dbg_cnt (hoist);
}
static unsigned int
execute_rtl_hoist (void)
{
int changed;
-
- if (cfun->calls_setjmp || !dbg_cnt (hoist))
- return 0;
-
delete_unreachable_blocks ();
df_analyze ();
changed = one_code_hoisting_pass ();
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing |
- TODO_dump_func |
TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
}
};
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing |
- TODO_dump_func |
TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
}
};