X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ftoplev.c;h=6bf17368738ab379bbcb262213049a2f434f0646;hp=ab6b5a418378fc5ffc3828fc41432a1cfec25602;hb=74fd6a481624213c16c7bb04b5250d40d75f51e5;hpb=ad7665738cceb89b25315d45f22612510fb6acd2 diff --git a/gcc/toplev.c b/gcc/toplev.c index ab6b5a41837..6bf17368738 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -146,14 +146,6 @@ HOST_WIDE_INT random_seed; /* -f flags. */ -/* Generate code for GNU or NeXT Objective-C runtime environment. */ - -#ifdef NEXT_OBJC_RUNTIME -int flag_next_runtime = 1; -#else -int flag_next_runtime = 0; -#endif - /* Nonzero means make permerror produce warnings instead of errors. */ int flag_permissive = 0; @@ -599,6 +591,7 @@ compile_file (void) output_shared_constant_pool (); output_object_blocks (); + finish_tm_clone_pairs (); /* Write out any pending weak symbol declarations. */ weak_finish (); @@ -651,13 +644,13 @@ compile_file (void) { #if defined ASM_OUTPUT_ALIGNED_DECL_COMMON ASM_OUTPUT_ALIGNED_DECL_COMMON (asm_out_file, NULL_TREE, - "__gnu_slim_lto", + "__gnu_lto_slim", (unsigned HOST_WIDE_INT) 1, 8); #elif defined ASM_OUTPUT_ALIGNED_COMMON - ASM_OUTPUT_ALIGNED_COMMON (asm_out_file, "__gnu_slim_lto", + ASM_OUTPUT_ALIGNED_COMMON (asm_out_file, "__gnu_lto_slim", (unsigned HOST_WIDE_INT) 1, 8); #else - ASM_OUTPUT_COMMON (asm_out_file, "__gnu_slim_lto", + ASM_OUTPUT_COMMON (asm_out_file, "__gnu_lto_slim", (unsigned HOST_WIDE_INT) 1, (unsigned HOST_WIDE_INT) 1); #endif @@ -1171,6 +1164,9 @@ general_init (const char *argv0) can give warnings and errors. */ diagnostic_initialize (global_dc, N_OPTS); diagnostic_starter (global_dc) = default_tree_diagnostic_starter; + /* By default print macro expansion contexts in the diagnostic + finalizer -- for tokens resulting from macro macro expansion. */ + diagnostic_finalizer (global_dc) = virt_loc_aware_diagnostic_finalizer; /* Set a default printer. Language specific initializations will override it later. */ pp_format_decoder (global_dc->printer) = &default_tree_printer; @@ -1213,6 +1209,7 @@ general_init (const char *argv0) line_table = ggc_alloc_line_maps (); linemap_init (line_table); line_table->reallocator = realloc_for_line_map; + line_table->round_alloc_size = ggc_round_alloc_size; init_ttree (); /* Initialize register usage now so switches may override. */ @@ -1328,6 +1325,21 @@ process_options (void) "and -ftree-loop-linear)"); #endif + if (flag_mudflap && flag_lto) + sorry ("mudflap cannot be used together with link-time optimization"); + + /* One region RA really helps to decrease the code size. */ + if (flag_ira_region == IRA_REGION_AUTODETECT) + flag_ira_region + = optimize_size || !optimize ? IRA_REGION_ONE : IRA_REGION_MIXED; + + if (flag_strict_volatile_bitfields > 0 && !abi_version_at_least (2)) + { + warning (0, "-fstrict-volatile-bitfields disabled; " + "it is incompatible with ABI versions < 2"); + flag_strict_volatile_bitfields = 0; + } + /* Unrolling all loops implies that standard loop unrolling must also be done. */ if (flag_unroll_all_loops) @@ -1482,12 +1494,15 @@ process_options (void) /* If the user specifically requested variable tracking with tagging uninitialized variables, we need to turn on variable tracking. (We already determined above that variable tracking is feasible.) */ - if (flag_var_tracking_uninit) + if (flag_var_tracking_uninit == 1) flag_var_tracking = 1; if (flag_var_tracking == AUTODETECT_VALUE) flag_var_tracking = optimize >= 1; + if (flag_var_tracking_uninit == AUTODETECT_VALUE) + flag_var_tracking_uninit = flag_var_tracking; + if (flag_var_tracking_assignments == AUTODETECT_VALUE) flag_var_tracking_assignments = flag_var_tracking && !(flag_selective_scheduling || flag_selective_scheduling2); @@ -1590,18 +1605,6 @@ process_options (void) if (!flag_stack_protect) warn_stack_protect = 0; - /* ??? Unwind info is not correct around the CFG unless either a frame - pointer is present or A_O_A is set. Fixing this requires rewriting - unwind info generation to be aware of the CFG and propagating states - around edges. */ - if (flag_unwind_tables && !ACCUMULATE_OUTGOING_ARGS - && flag_omit_frame_pointer) - { - warning (0, "unwind tables currently require a frame pointer " - "for correctness"); - flag_omit_frame_pointer = 0; - } - /* Enable -Werror=coverage-mismatch when -Werror and -Wno-error have not been set. */ if (!global_options_set.x_warnings_are_errors @@ -1824,6 +1827,7 @@ target_reinit (void) void dump_memory_report (bool final) { + dump_line_table_statistics (); ggc_print_statistics (); stringpool_statistics (); dump_tree_statistics ();