[llvm-commits] [llvm] r43061 - /llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp

Chris Lattner clattner at apple.com
Tue Oct 16 21:53:52 PDT 2007


> URL: http://llvm.org/viewvc/llvm-project?rev=43061&view=rev
> Log:
> Clean up code that calculate MBB live-in's.

Very nice Evan, this sped up linscan significantly.  For example, on  
176.gcc with a release-asserts build:

old:

    7.2973 ( 47.3%)   0.0527 ( 19.1%)   7.3501 ( 46.8%)   7.3503  
( 46.8%)  X86 DAG->DAG Instruction Selection
    2.1359 ( 13.8%)   0.0090 (  3.2%)   2.1449 ( 13.6%)   2.1449  
( 13.6%)  Linear Scan Register Allocator
    0.9337 (  6.0%)   0.0852 ( 30.9%)   1.0190 (  6.4%)   1.0235  
(  6.5%)  Live Interval Analysis
    0.8634 (  5.6%)   0.0093 (  3.4%)   0.8728 (  5.5%)   0.8732  
(  5.5%)  Simple Register Coalescing
..
   15.4108 (100.0%)   0.2757 (100.0%)  15.6865 (100.0%)  15.6943  
(100.0%)  TOTAL

new:

    7.3167 ( 50.1%)   0.0553 ( 19.8%)   7.3720 ( 49.6%)   7.4150  
( 49.7%)  X86 DAG->DAG Instruction Selection
    1.3034 (  8.9%)   0.0079 (  2.8%)   1.3113 (  8.8%)   1.3114  
(  8.8%)  Linear Scan Register Allocator
    0.9415 (  6.4%)   0.0889 ( 31.9%)   1.0305 (  6.9%)   1.0303  
(  6.9%)  Live Interval Analysis
    0.8414 (  5.7%)   0.0089 (  3.2%)   0.8503 (  5.7%)   0.8502  
(  5.7%)  Simple Register Coalescing
..
   14.5815 (100.0%)   0.2786 (100.0%)  14.8601 (100.0%)  14.9024  
(100.0%)  TOTAL


That's a 63% speedup of the linscan pass!

-Chris





More information about the llvm-commits mailing list