diff options
Diffstat (limited to 'contrib/gcc')
-rw-r--r-- | contrib/gcc/toplev.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/contrib/gcc/toplev.c b/contrib/gcc/toplev.c index 60a6bca..5947f6f 100644 --- a/contrib/gcc/toplev.c +++ b/contrib/gcc/toplev.c @@ -1410,7 +1410,7 @@ int inhibit_warnings = 0; /* Don't suppress warnings from system headers. -Wsystem-headers. */ -int warn_system_headers = 1; +int warn_system_headers = 0; /* Print various extra warnings. -W. */ @@ -2823,7 +2823,8 @@ rest_of_compilation (decl) tem = cse_main (insns, max_reg_num (), 0, rtl_dump_file); if (tem) rebuild_jump_labels (insns); - purge_all_dead_edges (0); + if (purge_all_dead_edges (0)) + delete_unreachable_blocks (); delete_trivially_dead_insns (insns, max_reg_num ()); @@ -3468,6 +3469,23 @@ rest_of_compilation (decl) #endif #ifdef STACK_REGS +#if defined (HAVE_ATTR_length) + /* If flow2 creates new instructions which need splitting + and scheduling after reload is not done, they might not be + splitten until final which doesn't allow splitting + if HAVE_ATTR_length. */ +#ifdef INSN_SCHEDULING + if (optimize && !flag_schedule_insns_after_reload) +#else + if (optimize) +#endif + { + timevar_push (TV_SHORTEN_BRANCH); + split_all_insns (1); + timevar_pop (TV_SHORTEN_BRANCH); + } +#endif + timevar_push (TV_REG_STACK); open_dump_file (DFI_stack, decl); |