This is split off from PR38474 for clarity. Compiling the testcase of that PR
(http://gcc.gnu.org/bugzilla/attachment.cgi?id=16873) as gfortran-4.3 -ffree-line-length-512 -g -ffree-form -ftime-report -c -O3 -march=native -funroll-loops testcase.f90 shows that about 13 hours are needed in rename registers. Execution times (seconds) garbage collection : 3.96 ( 0%) usr 0.00 ( 0%) sys 3.95 ( 0%) wall 0 kB ( 0%) ggc callgraph construction: 0.42 ( 0%) usr 0.01 ( 0%) sys 0.44 ( 0%) wall 10751 kB ( 1%) ggc callgraph optimization: 0.78 ( 0%) usr 0.02 ( 0%) sys 0.82 ( 0%) wall 14320 kB ( 1%) ggc ipa reference : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall 0 kB ( 0%) ggc ipa pure const : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc cfg cleanup : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 0 kB ( 0%) ggc trivially dead code : 5.36 ( 0%) usr 0.00 ( 0%) sys 5.38 ( 0%) wall 0 kB ( 0%) ggc df reaching defs : 6.56 ( 0%) usr 0.07 ( 1%) sys 6.60 ( 0%) wall 0 kB ( 0%) ggc df live regs : 16.93 ( 0%) usr 0.00 ( 0%) sys 16.96 ( 0%) wall 0 kB ( 0%) ggc df live&initialized regs: 7.39 ( 0%) usr 0.00 ( 0%) sys 7.38 ( 0%) wall 0 kB ( 0%) ggc df use-def / def-use chains: 14.49 ( 0%) usr 0.02 ( 0%) sys 14.52 ( 0%) wall 0 kB ( 0%) ggc df reg dead/unused notes: 10.94 ( 0%) usr 0.00 ( 0%) sys 10.96 ( 0%) wall 37217 kB ( 3%) ggc register information : 4.97 ( 0%) usr 0.00 ( 0%) sys 4.97 ( 0%) wall 0 kB ( 0%) ggc alias analysis : 8.84 ( 0%) usr 0.01 ( 0%) sys 8.86 ( 0%) wall 49164 kB ( 3%) ggc register scan : 1.78 ( 0%) usr 0.00 ( 0%) sys 1.80 ( 0%) wall 0 kB ( 0%) ggc rebuild jump labels : 3.93 ( 0%) usr 0.00 ( 0%) sys 3.93 ( 0%) wall 0 kB ( 0%) ggc parser : 3.24 ( 0%) usr 0.10 ( 1%) sys 3.35 ( 0%) wall 60522 kB ( 4%) ggc inline heuristics :2516.42 ( 4%) usr 4.20 (35%) sys2542.00 ( 4%) wall 0 kB ( 0%) ggc tree gimplify : 0.55 ( 0%) usr 0.00 ( 0%) sys 0.54 ( 0%) wall 3453 kB ( 0%) ggc tree eh : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree CFG construction : 0.02 ( 0%) usr 0.01 ( 0%) sys 0.03 ( 0%) wall 7185 kB ( 1%) ggc tree CFG cleanup : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 1 kB ( 0%) ggc tree VRP : 0.25 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall 36 kB ( 0%) ggc tree copy propagation : 0.63 ( 0%) usr 0.00 ( 0%) sys 0.60 ( 0%) wall 6 kB ( 0%) ggc tree find ref. vars : 0.12 ( 0%) usr 0.01 ( 0%) sys 0.12 ( 0%) wall 8202 kB ( 1%) ggc tree PTA : 3.61 ( 0%) usr 0.07 ( 1%) sys 3.64 ( 0%) wall 96 kB ( 0%) ggc tree alias analysis : 6.71 ( 0%) usr 0.11 ( 1%) sys 6.74 ( 0%) wall 3 kB ( 0%) ggc tree call clobbering : 0.39 ( 0%) usr 0.00 ( 0%) sys 0.37 ( 0%) wall 0 kB ( 0%) ggc tree flow sensitive alias: 0.11 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 9 kB ( 0%) ggc tree flow insensitive alias: 3.54 ( 0%) usr 0.00 ( 0%) sys 3.53 ( 0%) wall 0 kB ( 0%) ggc tree memory partitioning: 18.88 ( 0%) usr 0.03 ( 0%) sys 18.93 ( 0%) wall 0 kB ( 0%) ggc tree PHI insertion : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 1 kB ( 0%) ggc tree SSA rewrite : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.18 ( 0%) wall 25972 kB ( 2%) ggc tree SSA other : 0.02 ( 0%) usr 0.03 ( 0%) sys 0.08 ( 0%) wall 0 kB ( 0%) ggc tree SSA incremental : 0.82 ( 0%) usr 0.00 ( 0%) sys 0.82 ( 0%) wall 9 kB ( 0%) ggc tree operand scan :6681.62 (11%) usr 0.55 ( 5%) sys6698.35 (11%) wall 19727 kB ( 1%) ggc dominator optimization: 0.26 ( 0%) usr 0.00 ( 0%) sys 0.25 ( 0%) wall 11 kB ( 0%) ggc tree SRA : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 0 kB ( 0%) ggc tree STORE-CCP : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.15 ( 0%) wall 1 kB ( 0%) ggc tree CCP : 0.18 ( 0%) usr 0.00 ( 0%) sys 0.19 ( 0%) wall 3 kB ( 0%) ggc tree reassociation : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 2 kB ( 0%) ggc tree PRE : 0.37 ( 0%) usr 0.00 ( 0%) sys 0.38 ( 0%) wall 2289 kB ( 0%) ggc tree FRE : 0.38 ( 0%) usr 0.01 ( 0%) sys 0.38 ( 0%) wall 2297 kB ( 0%) ggc tree linearize phis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree forward propagate: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 0 kB ( 0%) ggc tree conservative DCE : 0.53 ( 0%) usr 0.00 ( 0%) sys 0.56 ( 0%) wall 0 kB ( 0%) ggc tree aggressive DCE : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 0 kB ( 0%) ggc tree DSE : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 0 kB ( 0%) ggc tree SSA to normal : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 3 kB ( 0%) ggc tree rename SSA copies: 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 0 kB ( 0%) ggc expand :1279.48 ( 2%) usr 2.74 (23%) sys1285.18 ( 2%) wall 440026 kB (31%) ggc lower subreg : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall 0 kB ( 0%) ggc forward prop : 1.74 ( 0%) usr 0.03 ( 0%) sys 1.73 ( 0%) wall 8458 kB ( 1%) ggc CSE : 9.02 ( 0%) usr 0.04 ( 0%) sys 9.04 ( 0%) wall 27164 kB ( 2%) ggc dead code elimination : 3.63 ( 0%) usr 0.00 ( 0%) sys 3.62 ( 0%) wall 0 kB ( 0%) ggc dead store elim1 : 5.64 ( 0%) usr 0.05 ( 0%) sys 5.69 ( 0%) wall 37803 kB ( 3%) ggc dead store elim2 : 7.64 ( 0%) usr 0.01 ( 0%) sys 7.65 ( 0%) wall 38112 kB ( 3%) ggc web : 1.38 ( 0%) usr 0.02 ( 0%) sys 1.41 ( 0%) wall 0 kB ( 0%) ggc CSE 2 : 4.26 ( 0%) usr 0.02 ( 0%) sys 4.29 ( 0%) wall 10087 kB ( 1%) ggc branch prediction : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 3 kB ( 0%) ggc combiner : 5.02 ( 0%) usr 0.03 ( 0%) sys 5.06 ( 0%) wall 17823 kB ( 1%) ggc regmove : 4.83 ( 0%) usr 0.00 ( 0%) sys 4.83 ( 0%) wall 1 kB ( 0%) ggc local alloc : 11.33 ( 0%) usr 0.08 ( 1%) sys 11.36 ( 0%) wall 64779 kB ( 5%) ggc global alloc : 21.86 ( 0%) usr 0.69 ( 6%) sys 22.55 ( 0%) wall 275939 kB (20%) ggc reload CSE regs : 10.28 ( 0%) usr 0.00 ( 0%) sys 10.29 ( 0%) wall 79246 kB ( 6%) ggc load CSE after reload : 0.84 ( 0%) usr 0.00 ( 0%) sys 0.85 ( 0%) wall 0 kB ( 0%) ggc thread pro- & epilogue: 0.89 ( 0%) usr 0.00 ( 0%) sys 0.89 ( 0%) wall 13 kB ( 0%) ggc peephole 2 : 1.46 ( 0%) usr 0.00 ( 0%) sys 1.46 ( 0%) wall 0 kB ( 0%) ggc rename registers :49100.30 (82%) usr 2.30 (19%) sys49376.54 (82%) wall 16842 kB ( 1%) ggc scheduling 2 : 21.80 ( 0%) usr 0.60 ( 5%) sys 22.39 ( 0%) wall 150933 kB (11%) ggc machine dep reorg : 1.99 ( 0%) usr 0.00 ( 0%) sys 2.00 ( 0%) wall 0 kB ( 0%) ggc reorder blocks : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 1 kB ( 0%) ggc final : 3.83 ( 0%) usr 0.04 ( 0%) sys 3.88 ( 0%) wall 738 kB ( 0%) ggc symout : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall 5418 kB ( 0%) ggc variable tracking : 1.86 ( 0%) usr 0.02 ( 0%) sys 1.87 ( 0%) wall 17 kB ( 0%) ggc TOTAL :59825.47 11.92 60151.75 1415015 kB -- Summary: excessive time in rename registers Product: gcc Version: 4.3.3 Status: UNCONFIRMED Keywords: compile-time-hog Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk OtherBugsDependingO 38474 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38582