From 790ac0e12ab9a3d704f89d3480af437c550badc6 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Wed, 18 Aug 2004 09:22:53 -0700 Subject: [PATCH] Forgot to commit ChangeLog for rest of hot/cold partitioning update patch. From-SVN: r86190 --- gcc/ChangeLog | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89ce5f380fc..3bb39234550 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,100 @@ +2004-08-18 Caroline Tice + + * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add + "-freorder-blocks-and-partition" to the flags used in second + stage of profiledbootstrap. + * bb-reorder.c (push_to_next_round_p): Add new variable, + next_round_is_last; set and use variable to make sure, when + partitioning, that the last trace construction round consists + of all (and only) cold basic blocks. + (rotate_loop): Don't copy blocks that end in a section + crossing jump. + (copy_bb): Correctly initialize "partition" of duplicated bb. + (add_unlikely_executed_notes): Add a comment. + (find_rarely_executed_basic_blocks_and_crossing_edges): Modify + to make sure, if function contains hot blocks, that the + successors of ENTRY_BLOCK_PTR are hot; also, only look for + crossing edges if the architecture supports named sections. + (mark_bb_for_unlikely_executed_section): Modify to always + insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after + the basic block note insn. + (fix_crossing_unconditional_branches): Remove extra space. + (fix_edges_for_rarely_executed_code): Modify to only do + partitioning work if the architecture supports named sections. + (reorder_basic_blocks): Modify to only add + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture + supports named sections. + * c-common.c (handle_section_attribute): Initialize new global + variable, user_defined_section_attribute, to true if user has + specified one. + * cfgcleanup.c (try_forward_edges): Modify to not attempt to + forward edges that cross section boundaries. + * cfglayout.c (fixup_reorder_chain): Modify to only fix up + partitioning information if the architecture supports named + sections. + * cfgrtl.c (target.h): Add statement to include this. + (rtl_split_block): Make sure newly created bb gets correct + partition. + (try_redirect_by_replacing_jump): Make sure redirection isn't + attempting to cross section boundaries. + (force_nonfallthru_and_redirect): Only do partition fix up if + architecture supports named sections. + (rtl_split_edge): Make sure newly created bb ends up in + correct partition. + (commit_one_edge_insertion): Remove code that incorrectly + updated basic block partition; Make sure partition fix up only + happens if architecture supports named sections and it's not + already done. + (rtl_verify_flow_info_1): Fix if-condition on test/error + condition that fallthru edges are not allowed to cross section + boundaries. + * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this. + * final.c (final_scan_insn): Remove redundant test from if-statement; + change calls to text_section into calls to function_section; add code + to only to partitioning fix up if architecture supports named + sections. + * ifcvt.c (find_if_case_1): Make sure newly created bb has correct + partition. + (if_convert): Add targetm.have_named_sections to test. + * output.h (unlikely_section_label): Extern declaration for new global + variable. + (unlikely_text_section_name): Likewise. + * opts.c (decode_options): If both partitioning and DWARF debugging + are turned on, issue a warning that this doesn't work, and change + partitiong to basic block reordering (without hot/cold partitions). + * passes.c (rest_of_handle_final): Re-set new global variable, + user_defined_section_attribute, to false. + (rest_of_compilation): Change options for calling partitioning + function: Don't call if the user defined the section attribute, and + don't call if DECL_ONE_ONLY is true for the current function. + * predict.c (choose_function_section): Return immediately if we + are doing hot/cold partitioning (i.e. let the basic block partitioning + determine where the function belongs). + * reg-stack.c (emit_swap_insn): Add condition to step over + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. + * toplev.c (user_defined_section_attribute): New global variable. + * toplev.h (user_defined_section_attribute): Extern declaration for new + global variable. + * varasm.c (unlikely_section_label): New global variable. + (unlikely_text_section_name): New global variable. + (unlikely_text_section): Add code to initialize unlikely_text_section_name + if necessary; modify to use unlikely_text_section_name and + unlikely_section_label; also to use named_section properly. + (in_unlikely_text_section): Modify to work correctly with named_section + and to use unlikely_text_section_name. + (named_section): Add code to work properly with cold section. + (function_section): Clean up if-statement. + * config/darwin.c (darwin_asm_named_section): Return to original code, + removing use of SECTION_FORMAT_STRING. + * config/arm/pe.h (switch_to_section): Add case for + in_unlikely_executed_text to switch statement. + * config/i386/cygming.h (switch_to_section): Likewise. + * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Likewise. + * config/mcore/mcore.h (switch_to_section): Likewise. + * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Remove. + 2004-08-18 Roger Sayle * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be -- 2.30.2