Tremendous increase in compile times for 3.4.1 with -mcpu=G5

Bradley Lucier lucier@math.purdue.edu
Tue Aug 10 22:56:00 GMT 2004


On Aug 10, 2004, at 5:23 PM, Bradley Lucier wrote:

> It seems that specifying -mcpu=G5 instead of -mcpu=G4 leads to a 
> tremendous increase in compile time for 3.4.1.
> A typicial bad file can be found at
>
> http://www.math.purdue.edu/~lucier/GNATS/GNATS-12/_num.i.gz
>
> I filed a PR: 16975.

Sorry, it's been a long day, I forgot to give any timing information; 
the problem seems to appear in local alloc:

[descartes:~] lucier% 
/pkgs/gcc-3.4.1/libexec/gcc/powerpc-apple-darwin7.5.0/3.4.1/cc1 
-mcpu=G4 -I../include -Wall -W -Wno-unused -O1 -fno-math-errno 
-fschedule-insns2 -fno-trapping-math -fno-strict-aliasing 
-fomit-frame-pointer -fPIC -fno-common -DHAVE_CONFIG_H _num.i
  ___H__20___num
  {GC 33074k -> 16368k} {GC 24361k -> 16711k} {GC 24130k -> 17077k} {GC 
27863k -> 4402k} ___init_proc
  {GC 5843k -> 4642k} ____20___num

Execution times (seconds)
  garbage collection    :   0.44 ( 2%) usr   0.05 ( 0%) sys   0.88 ( 2%) 
wall
  cfg construction      :   0.26 ( 1%) usr   0.34 ( 3%) sys   1.14 ( 2%) 
wall
  cfg cleanup           :   0.85 ( 4%) usr   0.01 ( 0%) sys   1.66 ( 3%) 
wall
  trivially dead code   :   0.36 ( 2%) usr   0.02 ( 0%) sys   0.78 ( 1%) 
wall
  life analysis         :   1.15 ( 6%) usr   0.32 ( 3%) sys   2.63 ( 5%) 
wall
  life info update      :   0.38 ( 2%) usr   0.00 ( 0%) sys   0.71 ( 1%) 
wall
  alias analysis        :   0.24 ( 1%) usr   0.02 ( 0%) sys   0.43 ( 1%) 
wall
  register scan         :   0.16 ( 1%) usr   0.00 ( 0%) sys   0.38 ( 1%) 
wall
  rebuild jump labels   :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) 
wall
  preprocessing         :   1.57 ( 8%) usr   2.64 (21%) sys   7.90 (14%) 
wall
  lexical analysis      :   2.68 (14%) usr   5.26 (42%) sys  14.38 (25%) 
wall
  parser                :   2.37 (13%) usr   2.85 (23%) sys  10.39 (18%) 
wall
  expand                :   0.41 ( 2%) usr   0.05 ( 0%) sys   0.87 ( 1%) 
wall
  varconst              :   0.07 ( 0%) usr   0.04 ( 0%) sys   0.22 ( 0%) 
wall
  jump                  :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) 
wall
  CSE                   :   0.39 ( 2%) usr   0.00 ( 0%) sys   0.76 ( 1%) 
wall
  loop analysis         :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) 
wall
  branch prediction     :   0.76 ( 4%) usr   0.06 ( 0%) sys   1.47 ( 3%) 
wall
  flow analysis         :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) 
wall
  combiner              :   0.63 ( 3%) usr   0.05 ( 0%) sys   1.26 ( 2%) 
wall
  if-conversion         :   0.20 ( 1%) usr   0.03 ( 0%) sys   0.42 ( 1%) 
wall
  local alloc           :   0.51 ( 3%) usr   0.03 ( 0%) sys   1.01 ( 2%) 
wall
  global alloc          :   1.34 ( 7%) usr   0.28 ( 2%) sys   2.92 ( 5%) 
wall
  reload CSE regs       :   0.64 ( 3%) usr   0.01 ( 0%) sys   1.23 ( 2%) 
wall
  flow 2                :   0.13 ( 1%) usr   0.11 ( 1%) sys   0.41 ( 1%) 
wall
  if-conversion 2       :   0.12 ( 1%) usr   0.02 ( 0%) sys   0.26 ( 0%) 
wall
  rename registers      :   1.73 ( 9%) usr   0.05 ( 0%) sys   3.32 ( 6%) 
wall
  scheduling 2          :   0.64 ( 3%) usr   0.04 ( 0%) sys   1.19 ( 2%) 
wall
  shorten branches      :   0.10 ( 1%) usr   0.00 ( 0%) sys   0.22 ( 0%) 
wall
  final                 :   0.26 ( 1%) usr   0.01 ( 0%) sys   0.50 ( 1%) 
wall
  symout                :   0.00 ( 0%) usr   0.01 ( 0%) sys   0.01 ( 0%) 
wall
  rest of compilation   :   0.37 ( 2%) usr   0.07 ( 1%) sys   0.71 ( 1%) 
wall
  TOTAL                 :  18.95            12.40            58.44
[descartes:~] lucier% 
/pkgs/gcc-3.4.1/libexec/gcc/powerpc-apple-darwin7.5.0/3.4.1/cc1 
-mcpu=G5 -I../include -Wall -W -Wno-unused -O1 -fno-math-errno 
-fschedule-insns2 -fno-trapping-math -fno-strict-aliasing 
-fomit-frame-pointer -fPIC -fno-common -DHAVE_CONFIG_H _num.i
  ___H__20___num
  {GC 34619k -> 17755k} {GC 24607k -> 18680k} {GC 24303k -> 18051k} {GC 
25937k -> 18621k} {GC 29738k -> 4562k} ___init_proc
  {GC 5960k -> 4703k} ____20___num

Execution times (seconds)
  garbage collection    :   0.55 ( 0%) usr   0.03 ( 0%) sys   1.14 ( 0%) 
wall
  cfg construction      :   0.27 ( 0%) usr   0.34 ( 2%) sys   1.12 ( 0%) 
wall
  cfg cleanup           :   0.92 ( 1%) usr   0.01 ( 0%) sys   1.68 ( 1%) 
wall
  trivially dead code   :   0.41 ( 0%) usr   0.03 ( 0%) sys   0.93 ( 0%) 
wall
  life analysis         :   1.08 ( 1%) usr   0.34 ( 2%) sys   2.76 ( 1%) 
wall
  life info update      :   0.41 ( 0%) usr   0.00 ( 0%) sys   0.86 ( 0%) 
wall
  alias analysis        :   0.25 ( 0%) usr   0.02 ( 0%) sys   0.50 ( 0%) 
wall
  register scan         :   0.21 ( 0%) usr   0.00 ( 0%) sys   0.38 ( 0%) 
wall
  rebuild jump labels   :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%) 
wall
  preprocessing         :   1.56 ( 1%) usr   2.87 (21%) sys   7.77 ( 3%) 
wall
  lexical analysis      :   2.74 ( 2%) usr   5.23 (38%) sys  15.70 ( 6%) 
wall
  parser                :   2.29 ( 2%) usr   2.97 (21%) sys  10.23 ( 4%) 
wall
  expand                :   0.41 ( 0%) usr   0.04 ( 0%) sys   0.84 ( 0%) 
wall
  varconst              :   0.09 ( 0%) usr   0.03 ( 0%) sys   0.10 ( 0%) 
wall
  jump                  :   0.01 ( 0%) usr   0.01 ( 0%) sys   0.09 ( 0%) 
wall
  CSE                   :   0.48 ( 0%) usr   0.01 ( 0%) sys   0.89 ( 0%) 
wall
  loop analysis         :   0.02 ( 0%) usr   0.02 ( 0%) sys   0.10 ( 0%) 
wall
  branch prediction     :   0.81 ( 1%) usr   0.07 ( 1%) sys   1.75 ( 1%) 
wall
  flow analysis         :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) 
wall
  combiner              :   0.96 ( 1%) usr   0.03 ( 0%) sys   2.09 ( 1%) 
wall
  if-conversion         :   0.21 ( 0%) usr   0.01 ( 0%) sys   0.49 ( 0%) 
wall
  local alloc           : 117.49 (86%) usr   1.09 ( 8%) sys 221.13 (78%) 
wall
  global alloc          :   1.99 ( 1%) usr   0.35 ( 3%) sys   4.43 ( 2%) 
wall
  reload CSE regs       :   0.92 ( 1%) usr   0.04 ( 0%) sys   1.85 ( 1%) 
wall
  flow 2                :   0.11 ( 0%) usr   0.08 ( 1%) sys   0.39 ( 0%) 
wall
  if-conversion 2       :   0.13 ( 0%) usr   0.02 ( 0%) sys   0.26 ( 0%) 
wall
  rename registers      :   1.58 ( 1%) usr   0.11 ( 1%) sys   3.15 ( 1%) 
wall
  scheduling 2          :   0.66 ( 0%) usr   0.01 ( 0%) sys   1.33 ( 0%) 
wall
  shorten branches      :   0.12 ( 0%) usr   0.01 ( 0%) sys   0.20 ( 0%) 
wall
  final                 :   0.23 ( 0%) usr   0.05 ( 0%) sys   0.51 ( 0%) 
wall
  symout                :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) 
wall
  rest of compilation   :   0.36 ( 0%) usr   0.05 ( 0%) sys   0.79 ( 0%) 
wall
  TOTAL                 : 137.39            13.90           283.76



More information about the Gcc mailing list