X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=44791b520a55f7bb27797c3f97433b1eeaedab2d;hp=3a41ae92e071f6dc6ef1ffe03e957b3b750ad0d2;hb=ce1695da7cc964572155c792234cc8bdab7a9b1e;hpb=502bc7345fbb89243bfc1466ebad649c1d4ff986 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3a41ae92e07..44791b520a5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-04-09 Zack Weinberg + + PR 14887 + * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at + mode argument. + * config/ia64/ia64.c (ia64_hpux_file_end): Check + TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME. + 2004-04-09 Roger Sayle * simplify-rtx.c (mode_signbit_p): New function to check whether @@ -23,13 +31,13 @@ 2004-04-09 Caroline Tice - * basic-block.h (struct edge_def): Add new field, crossing_edge. + * basic-block.h (struct edge_def): Add new field, crossing_edge. (struct basic_block_def): Add new field, partition. (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro definitions. - (partition_hot_cold_basic_blocks): Add extern function + (partition_hot_cold_basic_blocks): Add extern function declaration. - * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new + * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new include statements. (N_ROUNDS): Increase the maximum number of rounds by 1. (branch_threshold): Add array value for new round. @@ -50,19 +58,19 @@ basic blocks. (find_traces_1_round): Add a parameter. Modify to push all cold blocks, and only cold blocks, into the last (extra) round of collecting traces. - (better_edge_p): Add a parameter. Modify to favor non-crossing edges + (better_edge_p): Add a parameter. Modify to favor non-crossing edges over crossing edges. - (bb_to_key): Add code to correctly identify cold blocks when + (bb_to_key): Add code to correctly identify cold blocks when doing partitioning. (connect_traces): Modify to connect all the non-cold traces first, then go back and connect up all the cold traces. (reorder_basic_blocks): Add call to add_unlikely_executed_notes. * cfg.c (entry_exit_blocks): Add initialization for partition field in entry and exit blocks. - * cfgbuild.c (make_edges): Update current_function_has_computed_jump + * cfgbuild.c (make_edges): Update current_function_has_computed_jump if we are doing hot/cold partitioning. * cfgcleanup.c (cfglayout.h): Add new include statement. - (try_simplify_condjump): Modify to not attempt on blocks with jumps + (try_simplify_condjump): Modify to not attempt on blocks with jumps that cross section boundaries. (try_forward_edges): Likewise. (merge_blocks_move_predecessor_nojumps): Likewise. @@ -75,15 +83,15 @@ (try_optimize_cfg): Likewise. * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect jumps that cross section boundaries. - * cfglayout.c (flags.h): Add new include statement. + * cfglayout.c (flags.h): Add new include statement. (update_unlikely_executed_notes): New function. - (fixup_reorder_chain): Add code so when a new jumping basic block is - added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are + (fixup_reorder_chain): Add code so when a new jumping basic block is + added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are updated appropriately. (duplicate_insn_chain): Add code to duplicate the new NOTE insn introduced by this optimization. - * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new - extern function declaration. + * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new + extern function declaration. * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to list of notes that can be deleted. (create_basic_block_structure): Add initialization for partition field. @@ -92,7 +100,7 @@ (try_redirect_by_replacing_jump): Modify to not attempt on jumps that cross section boundaries. (commit_one_edge_insertion): Add code so newly created basic block - ends up in correct (hot or cold) section. Modify to disallow + ends up in correct (hot or cold) section. Modify to disallow insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge crosses section boundaries. @@ -100,97 +108,97 @@ cross section boundaries. (force_nonfallthru_and_redirect): Modify to make sure new basic block ends up in correct section, with correct notes attached. - * common.opt (freorder-blocks-and-partition): Add new flag for this - optimization. - * dbxout.c (dbx_function_end): Add code to make sure scope labels at - the end of functions are written into the correct (hot or cold) - section. + * common.opt (freorder-blocks-and-partition): Add new flag for this + optimization. + * dbxout.c (dbx_function_end): Add code to make sure scope labels at + the end of functions are written into the correct (hot or cold) + section. (dbx_source_file): Add code so writing debug file information doesn't incorrectly change sections. - * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use + * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use in partitioning hot/cold basic blocks into separate sections. - (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold + (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold section partitioning. (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not conditional branches can span all of memory. (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not unconditional branches can span all of memory. - * final.c (scan_ahead_for_unlikely_executed_note): New function. - (final_scan_insn): Add code to check for NOTE instruction indicating - whether basic block belongs in hot or cold section, and to make sure - the current basic block is being written to the appropriate section. - Also added code to ensure that jump table basic blocks end up in the - correct section. - * flags.h (flag_reorder_blocks_and_partition): New flag. + * final.c (scan_ahead_for_unlikely_executed_note): New function. + (final_scan_insn): Add code to check for NOTE instruction indicating + whether basic block belongs in hot or cold section, and to make sure + the current basic block is being written to the appropriate section. + Also added code to ensure that jump table basic blocks end up in the + correct section. + * flags.h (flag_reorder_blocks_and_partition): New flag. * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if one of the branches has a jump that crosses between sections. (find_if_case_2): Likewise. - (ifcvt): Modify to not attempt to mark loop exit edges after + (ifcvt): Modify to not attempt to mark loop exit edges after hot/cold partitioning has occurred. - * opts.c (decode_options): Code to handle new flag, - flag_reorder_blocks_and_partition; also to turn it off if + * opts.c (decode_options): Code to handle new flag, + flag_reorder_blocks_and_partition; also to turn it off if flag_exceptions is on. - (common_handle_option): Code to handle new flag, - flag_reorder_blocks_and_partition. - * output.h (unlikely_text_section): New extern function declaration. + (common_handle_option): Code to handle new flag, + flag_reorder_blocks_and_partition. + * output.h (unlikely_text_section): New extern function declaration. (in_unlikely_text_section): New extern function declaration. - * passes.c (rest_of_handle_stack_regs): Add - flag_reorder_blocks_and_partition as an 'or' condition for calling + * passes.c (rest_of_handle_stack_regs): Add + flag_reorder_blocks_and_partition as an 'or' condition for calling reorder_basic_blocks. - (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition + (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition as an 'or' condition for calling reorder_basic_blocks. (rest_of_compilation): Add call to partition_hot_cold_basic_blocks. - * print-rtl.c (print_rtx): Add code for handling new note, - NOTE_INSN_UNLIKELY_EXECUTED_CODE - * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). + * print-rtl.c (print_rtx): Add code for handling new note, + NOTE_INSN_UNLIKELY_EXECUTED_CODE + * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that cross between section boundaries. - * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, - indicating the basic block containing it belongs in the cold section. + * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, + indicating the basic block containing it belongs in the cold section. (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross between hot and cold sections. - * toplev.c (flag_reorder_blocks_and_partition): Add code to - initialize this flag, and to tie it to the command-line option - freorder-blocks-and-partition. - * varasm.c (cfglayout.h): Add new include statement. - (unlikely_section_label_printed): New global variable, used for - determining when to output section name labels for cold sections. + * toplev.c (flag_reorder_blocks_and_partition): Add code to + initialize this flag, and to tie it to the command-line option + freorder-blocks-and-partition. + * varasm.c (cfglayout.h): Add new include statement. + (unlikely_section_label_printed): New global variable, used for + determining when to output section name labels for cold sections. (in_section): Add in_unlikely_executed_text to enum data structure. (text_section): Modify code to use SECTION_FORMAT_STRING and NORMAL_TEXT_SECTION_NAME macros. (unlikely_text_section): New function. (in_unlikely_text_section): New function. - (function_section): Add code to make sure beginning of function is - written into correct section (hot or cold). - (assemble_start_function): Add code to make sure stuff is written to - the correct section. - (assemble_zeros): Add in_unlikely_text_section as an 'or' condition - to an if statement that was checking 'in_text_section'. - (assemble_variable): Add 'in_unlikely_text_section' as an 'or' - condition to an if statement that was checking 'in_text_section'. - (default_section_type_flags_1): Add check: if in cold section - flags = SECTION_CODE. + (function_section): Add code to make sure beginning of function is + written into correct section (hot or cold). + (assemble_start_function): Add code to make sure stuff is written to + the correct section. + (assemble_zeros): Add in_unlikely_text_section as an 'or' condition + to an if statement that was checking 'in_text_section'. + (assemble_variable): Add 'in_unlikely_text_section' as an 'or' + condition to an if statement that was checking 'in_text_section'. + (default_section_type_flags_1): Add check: if in cold section + flags = SECTION_CODE. * config/darwin.c (darwin_asm_named_section): Modify to use SECTION_FORMAT_STRING if we are partitioning hot/cold blocks. - * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro + * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro specifically for the i386. (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386. - * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change + * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change text string to something more informative. (NORMAL_TEXT_SECTION_NAME): Add new definition. (SECTION_FORMAT_STRING): Add new definition. - * config/rs6000/rs6000.c (rs6000_assemble_integer): Add - '!in_unlikely_text_section' as an 'and' condition to an if statement - that was already checking '!in_text_section'. - * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, - UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make - sure these are properly defined for linux on ppc. - * doc/invoke.texi (freorder-blocks-and-partition): Add documentation - for this new flag. + * config/rs6000/rs6000.c (rs6000_assemble_integer): Add + '!in_unlikely_text_section' as an 'and' condition to an if statement + that was already checking '!in_text_section'. + * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, + UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make + sure these are properly defined for linux on ppc. + * doc/invoke.texi (freorder-blocks-and-partition): Add documentation + for this new flag. * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new reg_note. - * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, - HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for + * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, + HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for these new macros. 2004-04-08 Roger Sayle @@ -319,7 +327,7 @@ * gcc.c (main): Move 'break' in main loops (on an error) to wait until error processing has occurred. - + 2004-04-06 Nathanael Nerode * config.gcc: Stop changing enable_threads midstream. @@ -366,7 +374,7 @@ PR 14467 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3. - + 2004-04-06 John David Anglin * doc/install.texi: Update HP-UX 11 installation procedure. @@ -392,8 +400,8 @@ * gcc.c (combine_flag): New global variable, for new driver option. (struct compiler): Add two new fields, to be used when combining multiple input files in a single pass (IMA). - (default_compilers): Add values for the new fields to all - compiler entries. Modify the "@c" compiler entry for doing IMA + (default_compilers): Add values for the new fields to all + compiler entries. Modify the "@c" compiler entry for doing IMA properly with "-save-temps" and the "combine" flag. (option_map): Add new driver option, "--combine", to tell driver to pass multiple input files to compiler at one time. @@ -405,8 +413,8 @@ for new "combine" option; remove assignment to combine_inputs. (do_spec_1): Modify to deal with IMA better. (main): Make variable 'lang_n_infiles' local to entire function - rather than to a single block. Use flag combine_flag to - determine whether to do IMA or not; Modify loop initializing + rather than to a single block. Use flag combine_flag to + determine whether to do IMA or not; Modify loop initializing infiles to deal properly with linker files. Add code for doing preprocessing in presence of IMA with "-save-temps" flag. Modify "main" loop to handle @@ -414,7 +422,7 @@ preprocessing, gracefully. * toplev.c (set_src_pwd): Modify to not complain if attempting to re-set it to same directory it's previously been set to (avoid - irritating, meaningless warning messages when doing IMA with + irritating, meaningless warning messages when doing IMA with save-temps). * doc/invoke.texi: Add "-combine" to list of Overall Options; remove documentation about IMA that is no longer accurate; Add @@ -527,7 +535,7 @@ * config/i386/i386.h (TARGET_NOCONA): New macro. (TARGET_CPU_CPP_BUILTINS): Add code for Nocona. (processor_type): Add PROCESSOR_NOCONA. - + * config/i386/i386.md (cpu): Add nocona to the attribute values. * config/i386/i386.c (nocona_cost): New variable. @@ -544,7 +552,7 @@ Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table. (incdec_operand): Prevent inc/dec generation for Nocona too. (ix86_issue_rate): Add PROCESSOR_NOCONA. - + 2004-04-01 Andrew Pinski * rtlanal.c (find_reg_note): Manually @@ -645,9 +653,9 @@ 2004-04-01 Serge Belyshev <1319@bot.ru> - PR target/14702 - * config/i386/i386.md: fix source operand constraints in - mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw + PR target/14702 + * config/i386/i386.md: fix source operand constraints in + mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 2004-04-01 Waldek Hebisch