https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117091

--- Comment #10 from ak at gcc dot gnu.org ---
https://github.com/andikleen/gcc/commit/9a71a4dbdd7094241bcdb0b89d7261c19dcc4b34

fixes the test case by checking early that bit clustering only works when
multiple labels point to the same code. It still needs a limit on the clusters
however.

With that fixes the test case shows a new issue in late combine undoing and
redoing things constantly. Is that a known problem?


-   35.83%  cc1      cc1                   [.] temporarily_undo_changes(int)   
                                      ◆
     35.82% temporarily_undo_changes(int)                                      
                                      ▒
        rtl_ssa::insn_info::calculate_cost() const                             
                                      ▒
        rtl_ssa::changes_are_worthwhile(array_slice<rtl_ssa::insn_change*
const>, bool)                               ▒
        (anonymous
namespace)::late_combine::combine_into_uses(rtl_ssa::insn_info*,
rtl_ssa::insn_info*)              ▒
        (anonymous namespace)::pass_late_combine::execute(function*)           
                                      ▒
        execute_one_pass(opt_pass*)                                            
                                      ▒
        execute_pass_list_1(opt_pass*)                                         
                                      ▒
      + execute_pass_list_1(opt_pass*)                                         
                                      ▒
-   34.44%  cc1      cc1                   [.] redo_changes(int)               
                                      ▒
     34.43% rtl_ssa::insn_info::calculate_cost() const                         
                                      ▒
        rtl_ssa::changes_are_worthwhile(array_slice<rtl_ssa::insn_change*
const>, bool)                               ▒
        (anonymous
namespace)::late_combine::combine_into_uses(rtl_ssa::insn_info*,
rtl_ssa::insn_info*)              ▒
        (anonymous namespace)::pass_late_combine::execute(function*)           
                                      ▒
        execute_one_pass(opt_pass*)                                            
                                      ▒
        execute_pass_list_1(opt_pass*)                                         
                                      ▒
      + execute_pass_list_1(opt_pass*)                                         
                                      ▒

Reply via email to