public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/38582] excessive time in rename registers
       [not found] <bug-38582-4@http.gcc.gnu.org/bugzilla/>
@ 2012-03-14 10:51 ` schwab@linux-m68k.org
  0 siblings, 0 replies; 5+ messages in thread
From: schwab@linux-m68k.org @ 2012-03-14 10:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38582

--- Comment #8 from Andreas Schwab <schwab@linux-m68k.org> 2012-03-14 10:47:50 UTC ---
This is apparently causing bug 52573.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug rtl-optimization/38582] excessive time in rename registers
  2008-12-20 11:17 [Bug middle-end/38582] New: " jv244 at cam dot ac dot uk
                   ` (2 preceding siblings ...)
  2009-11-26 21:42 ` bernds at gcc dot gnu dot org
@ 2009-11-27  8:55 ` jv244 at cam dot ac dot uk
  3 siblings, 0 replies; 5+ messages in thread
From: jv244 at cam dot ac dot uk @ 2009-11-27  8:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from jv244 at cam dot ac dot uk  2009-11-27 08:55 -------
Time report shows this is now fixed at -O3. Great job!

Execution times (seconds)
 garbage collection    :   7.60 ( 1%) usr   0.03 ( 0%) sys   7.65 ( 1%) wall   
   0 kB ( 0%) ggc
 callgraph construction:   0.23 ( 0%) usr   0.01 ( 0%) sys   0.25 ( 0%) wall  
12524 kB ( 1%) ggc
 callgraph optimization:   0.48 ( 0%) usr   0.03 ( 0%) sys   0.51 ( 0%) wall   
4370 kB ( 0%) ggc
 ipa cp                :   0.12 ( 0%) usr   0.00 ( 0%) sys   0.12 ( 0%) wall   
2061 kB ( 0%) ggc
 ipa reference         :   0.10 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
   0 kB ( 0%) ggc
 ipa pure const        :   0.18 ( 0%) usr   0.00 ( 0%) sys   0.18 ( 0%) wall   
   2 kB ( 0%) ggc
 cfg cleanup           :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall   
   0 kB ( 0%) ggc
 CFG verifier          :  11.18 ( 1%) usr   0.04 ( 0%) sys  11.25 ( 1%) wall   
   0 kB ( 0%) ggc
 trivially dead code   :   2.70 ( 0%) usr   0.01 ( 0%) sys   2.72 ( 0%) wall   
   0 kB ( 0%) ggc
 df multiple defs      :   3.28 ( 0%) usr   0.00 ( 0%) sys   3.28 ( 0%) wall   
   0 kB ( 0%) ggc
 df reaching defs      :   1.30 ( 0%) usr   0.04 ( 0%) sys   1.33 ( 0%) wall   
   0 kB ( 0%) ggc
 df live regs          :  11.46 ( 1%) usr   0.01 ( 0%) sys  11.47 ( 1%) wall   
   0 kB ( 0%) ggc
 df live&initialized regs:   6.86 ( 1%) usr   0.02 ( 0%) sys   6.87 ( 1%) wall 
     0 kB ( 0%) ggc
 df use-def / def-use chains:   3.87 ( 0%) usr   0.02 ( 0%) sys   3.91 ( 0%)
wall       0 kB ( 0%) ggc
 df reg dead/unused notes:   9.18 ( 1%) usr   0.01 ( 0%) sys   9.23 ( 1%) wall 
 28894 kB ( 2%) ggc
 register information  :   3.54 ( 0%) usr   0.02 ( 0%) sys   3.58 ( 0%) wall   
   0 kB ( 0%) ggc
 alias analysis        :   5.55 ( 1%) usr   0.01 ( 0%) sys   5.60 ( 1%) wall  
42254 kB ( 4%) ggc
 alias stmt walking    :   0.23 ( 0%) usr   0.11 ( 1%) sys   0.33 ( 0%) wall   
   0 kB ( 0%) ggc
 register scan         :   0.70 ( 0%) usr   0.00 ( 0%) sys   0.71 ( 0%) wall   
   4 kB ( 0%) ggc
 rebuild jump labels   :   1.43 ( 0%) usr   0.00 ( 0%) sys   1.46 ( 0%) wall   
   0 kB ( 0%) ggc
 parser                :   4.66 ( 1%) usr   0.11 ( 1%) sys   4.78 ( 1%) wall  
50732 kB ( 4%) ggc
 inline heuristics     :  40.66 ( 5%) usr   8.08 (51%) sys  48.90 ( 6%) wall   
 112 kB ( 0%) ggc
 integration           :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall   
 951 kB ( 0%) ggc
 tree gimplify         :   0.67 ( 0%) usr   0.00 ( 0%) sys   0.67 ( 0%) wall  
13182 kB ( 1%) ggc
 tree eh               :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
   0 kB ( 0%) ggc
 tree CFG construction :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall   
 172 kB ( 0%) ggc
 tree CFG cleanup      :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall   
   1 kB ( 0%) ggc
 tree VRP              :   0.15 ( 0%) usr   0.00 ( 0%) sys   0.17 ( 0%) wall   
 425 kB ( 0%) ggc
 tree copy propagation :   0.26 ( 0%) usr   0.00 ( 0%) sys   0.22 ( 0%) wall   
 139 kB ( 0%) ggc
 tree find ref. vars   :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.09 ( 0%) wall   
3262 kB ( 0%) ggc
 tree PTA              :  21.39 ( 3%) usr   0.38 ( 2%) sys  21.76 ( 3%) wall   
 371 kB ( 0%) ggc
 tree PHI insertion    :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall   
   0 kB ( 0%) ggc
 tree SSA rewrite      :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
8504 kB ( 1%) ggc
 tree SSA other        :   0.04 ( 0%) usr   0.01 ( 0%) sys   0.05 ( 0%) wall   
  18 kB ( 0%) ggc
 tree SSA incremental  :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
  24 kB ( 0%) ggc
 tree operand scan     :   0.04 ( 0%) usr   0.07 ( 0%) sys   0.10 ( 0%) wall   
4721 kB ( 0%) ggc
 dominator optimization:   0.04 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
  68 kB ( 0%) ggc
 tree SRA              :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
  86 kB ( 0%) ggc
 tree CCP              :   0.18 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall   
 105 kB ( 0%) ggc
 tree reassociation    :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
  48 kB ( 0%) ggc
 tree PRE              :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
 171 kB ( 0%) ggc
 tree FRE              :   0.12 ( 0%) usr   0.00 ( 0%) sys   0.13 ( 0%) wall   
 140 kB ( 0%) ggc
 tree code sinking     :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall   
  24 kB ( 0%) ggc
 tree linearize phis   :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  14 kB ( 0%) ggc
 tree forward propagate:   0.03 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
   7 kB ( 0%) ggc
 tree conservative DCE :   0.40 ( 0%) usr   0.05 ( 0%) sys   0.46 ( 0%) wall   
   0 kB ( 0%) ggc
 tree aggressive DCE   :   0.21 ( 0%) usr   0.03 ( 0%) sys   0.19 ( 0%) wall   
 319 kB ( 0%) ggc
 tree buildin call DCE :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall   
   0 kB ( 0%) ggc
 tree DSE              :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
   8 kB ( 0%) ggc
 complete unrolling    :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  43 kB ( 0%) ggc
 tree vectorization    :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
   0 kB ( 0%) ggc
 tree slp vectorization:   0.03 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  27 kB ( 0%) ggc
 tree rename SSA copies:   0.04 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
   0 kB ( 0%) ggc
 tree SSA verifier     :   2.85 ( 0%) usr   0.02 ( 0%) sys   2.83 ( 0%) wall   
   0 kB ( 0%) ggc
 tree STMT verifier    :  13.12 ( 2%) usr   0.06 ( 0%) sys  13.20 ( 2%) wall   
   0 kB ( 0%) ggc
 callgraph verifier    :   1.85 ( 0%) usr   0.00 ( 0%) sys   1.86 ( 0%) wall   
   0 kB ( 0%) ggc
 dominance computation :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
   0 kB ( 0%) ggc
 expand                : 548.68 (65%) usr   4.27 (27%) sys 552.92 (64%) wall 
311209 kB (26%) ggc
 lower subreg          :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) wall   
   0 kB ( 0%) ggc
 forward prop          :   6.49 ( 1%) usr   0.08 ( 1%) sys   6.57 ( 1%) wall  
18623 kB ( 2%) ggc
 CSE                   :   4.60 ( 1%) usr   0.02 ( 0%) sys   4.62 ( 1%) wall  
11149 kB ( 1%) ggc
 dead code elimination :   2.60 ( 0%) usr   0.01 ( 0%) sys   2.60 ( 0%) wall   
   0 kB ( 0%) ggc
 dead store elim1      :   3.33 ( 0%) usr   0.22 ( 1%) sys   3.51 ( 0%) wall  
27472 kB ( 2%) ggc
 dead store elim2      :   8.94 ( 1%) usr   0.02 ( 0%) sys   8.92 ( 1%) wall  
40503 kB ( 3%) ggc
 CPROP                 :   3.82 ( 0%) usr   0.01 ( 0%) sys   3.84 ( 0%) wall   
  10 kB ( 0%) ggc
 CSE 2                 :   4.43 ( 1%) usr   0.02 ( 0%) sys   4.44 ( 1%) wall   
7115 kB ( 1%) ggc
 branch prediction     :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall   
  43 kB ( 0%) ggc
 combiner              :   3.60 ( 0%) usr   0.03 ( 0%) sys   3.62 ( 0%) wall  
13773 kB ( 1%) ggc
 regmove               :   1.00 ( 0%) usr   0.01 ( 0%) sys   1.00 ( 0%) wall   
   0 kB ( 0%) ggc
 integrated RA         :  30.06 ( 4%) usr   0.29 ( 2%) sys  30.38 ( 4%) wall  
52314 kB ( 4%) ggc
 reload                :  11.54 ( 1%) usr   0.52 ( 3%) sys  12.09 ( 1%) wall 
216344 kB (18%) ggc
 reload CSE regs       :   9.15 ( 1%) usr   0.01 ( 0%) sys   9.16 ( 1%) wall  
59432 kB ( 5%) ggc
 load CSE after reload :   0.53 ( 0%) usr   0.01 ( 0%) sys   0.53 ( 0%) wall   
   0 kB ( 0%) ggc
 thread pro- & epilogue:   0.86 ( 0%) usr   0.00 ( 0%) sys   0.86 ( 0%) wall   
 302 kB ( 0%) ggc
 if-conversion 2       :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  24 kB ( 0%) ggc
 combine stack adjustments:   0.18 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall
      0 kB ( 0%) ggc
 peephole 2            :   1.07 ( 0%) usr   0.00 ( 0%) sys   1.07 ( 0%) wall   
  27 kB ( 0%) ggc
 hard reg cprop        :   3.83 ( 0%) usr   0.00 ( 0%) sys   3.85 ( 0%) wall   
   2 kB ( 0%) ggc
 scheduling 2          :  20.89 ( 2%) usr   0.83 ( 5%) sys  21.75 ( 3%) wall 
125198 kB (10%) ggc
 machine dep reorg     :   1.51 ( 0%) usr   0.00 ( 0%) sys   1.53 ( 0%) wall   
   0 kB ( 0%) ggc
 reorder blocks        :   0.31 ( 0%) usr   0.00 ( 0%) sys   0.30 ( 0%) wall   
   1 kB ( 0%) ggc
 final                 :   3.47 ( 0%) usr   0.13 ( 1%) sys   3.56 ( 0%) wall   
1631 kB ( 0%) ggc
 symout                :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall   
4315 kB ( 0%) ggc
 variable tracking     :  15.85 ( 2%) usr   0.03 ( 0%) sys  15.90 ( 2%) wall 
133442 kB (11%) ggc
 TOTAL                 : 844.13            15.69           860.19           
1197120 kB
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --enable-checking=release to disable checks.
COLLECT_GCC_OPTIONS='-ffree-line-length-512' '-g' '-ffree-form' '-ftime-report'
'-c' '-O3' '-ffree-line-length-512' '-v' '-mtune=generic'
 as -V -Qy -o PR38582.o /tmp/ccoKMKzI.s


-- 

jv244 at cam dot ac dot uk changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38582


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug rtl-optimization/38582] excessive time in rename registers
  2008-12-20 11:17 [Bug middle-end/38582] New: " jv244 at cam dot ac dot uk
  2009-11-12 18:13 ` [Bug rtl-optimization/38582] " bernds at gcc dot gnu dot org
  2009-11-26 21:35 ` bernds at gcc dot gnu dot org
@ 2009-11-26 21:42 ` bernds at gcc dot gnu dot org
  2009-11-27  8:55 ` jv244 at cam dot ac dot uk
  3 siblings, 0 replies; 5+ messages in thread
From: bernds at gcc dot gnu dot org @ 2009-11-26 21:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from bernds at gcc dot gnu dot org  2009-11-26 21:41 -------
Subject: Bug 38582

Author: bernds
Date: Thu Nov 26 21:41:42 2009
New Revision: 154688

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154688
Log:
        PR rtl-opt/38582
        * regrename.c (struct du_head): New members id, conflicts,
        hard_conflicts and cannot_rename.
        (enum scan_actions): Remove terminate_all_read and
        terminate_overlapping_read; add mark_all_read.
        (scan_actions_name): Likewise.
        (du_head_p): New typedef.  Define a vector type for it.
        (id_to_chain): New static variable.
        (note_sets, clear_dead_regs): Delete functions.
        (free_chain_data): New function.
        (merge_overlapping_regs): Simply walk the conflicts bitmap.
        Remove argument B, all callers changed.
        (regrename_optimize): Allocate id_to_chain.  Ignore chains that have
        the cannot_rename bit set.  Update regno and nregs of a renamed chain.
        Call free_chain_data when done.
        (do_replace): Remove death notes when the renamed reg is set in the
        last insn; add them if not.
        (mark_conflict, note_sets_clobbers): New static function.
        (fail_current_block, current_id, open_chains_set, live_hard_regs): New
        static variables.
        (scan_rtx_reg): Keep track of conflicts between chains, and between
        chains and hard regs.  Don't terminate chains when we find a read we
        can't handle, mark it unrenameable instead.  For terminate_write,
        terminate chains that are written with an exact match or a superset
        of registers.  Set fail_current_block if multi-word lifetimes are too
        complex to handle.
        (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
        (build_def_use): Initialize current_id, live_chains and live_hard_regs;
        free memory for them when done.
        Rearrange the steps so that earlyclobbers are noted before reads
        are processed.  Add new steps to keep track of hard register lifetimes
        outside insn operands.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/regrename.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38582


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug rtl-optimization/38582] excessive time in rename registers
  2008-12-20 11:17 [Bug middle-end/38582] New: " jv244 at cam dot ac dot uk
  2009-11-12 18:13 ` [Bug rtl-optimization/38582] " bernds at gcc dot gnu dot org
@ 2009-11-26 21:35 ` bernds at gcc dot gnu dot org
  2009-11-26 21:42 ` bernds at gcc dot gnu dot org
  2009-11-27  8:55 ` jv244 at cam dot ac dot uk
  3 siblings, 0 replies; 5+ messages in thread
From: bernds at gcc dot gnu dot org @ 2009-11-26 21:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from bernds at gcc dot gnu dot org  2009-11-26 21:35 -------
Subject: Bug 38582

Author: bernds
Date: Thu Nov 26 21:35:35 2009
New Revision: 154687

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154687
Log:
        PR rtl-opt/38582
        * regrename.c (struct du_chain): Remove member earlyclobber.
        (scan_rtx_reg): Don't set it.  Remove argument earlyclobber,
        all callers changed.
        (scan_rtx): Remove argument earlyclobber, all callers changed.
        (hide_operands, restore_operands, record_out_operands): New functions,
        broken out of build_def_use.
        (build_def_use): Call them as necessary.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/regrename.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38582


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug rtl-optimization/38582] excessive time in rename registers
  2008-12-20 11:17 [Bug middle-end/38582] New: " jv244 at cam dot ac dot uk
@ 2009-11-12 18:13 ` bernds at gcc dot gnu dot org
  2009-11-26 21:35 ` bernds at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: bernds at gcc dot gnu dot org @ 2009-11-12 18:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from bernds at gcc dot gnu dot org  2009-11-12 18:12 -------
Subject: Bug 38582

Author: bernds
Date: Thu Nov 12 18:12:09 2009
New Revision: 154123

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154123
Log:
        PR rtl-opt/38582
        * regrename.c (struct du_head): New structure; some elements moved
        from...
        (struct du_chain): ... this one.
        (open_chains, closed_chains): Now of type struct du_head *.
        (do_replace): Accept du_head argument, not du_chain.  All callers
        changed.  Modified code to match new data structures.
        (build_def_use): Return a list of du_head structures.  Modified code
        to match new data structures.
        (dump_def_use_chain): Accept du_head argument, not du_chain.  All
        callers changed.  Modified code to match new data structures.
        (merge_overlapping_regs): Accept du_head argument, not du_chain.  All
        callers changed.  Modified code to match new data structures.
        (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
        Allocate a du_head structure as well as a du_chain when creating a
        new chain.  Modified other code to match new data structures.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/regrename.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38582


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-03-14 10:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-38582-4@http.gcc.gnu.org/bugzilla/>
2012-03-14 10:51 ` [Bug rtl-optimization/38582] excessive time in rename registers schwab@linux-m68k.org
2008-12-20 11:17 [Bug middle-end/38582] New: " jv244 at cam dot ac dot uk
2009-11-12 18:13 ` [Bug rtl-optimization/38582] " bernds at gcc dot gnu dot org
2009-11-26 21:35 ` bernds at gcc dot gnu dot org
2009-11-26 21:42 ` bernds at gcc dot gnu dot org
2009-11-27  8:55 ` jv244 at cam dot ac dot uk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).