[LLVMbugs] [Bug 11302] New: quadratic compile time in SUnit::ComputeHeight and SUnit::setHeightDirty

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Nov 3 15:56:41 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=11302

             Bug #: 11302
           Summary: quadratic compile time in SUnit::ComputeHeight and
                    SUnit::setHeightDirty
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: kcc at google.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


The attached test cases have N calls of the following kind: 
   bar(16981, 6504, "11844");

compiling a test with 2*N such calls takes 4x more time than compiling N calls. 
I am using r143407

% for n in 8 16 32 64; do echo n=${n}000; time ./my_clang++ -c -O2
manycalls$n.cc ; done
n=8000
TIME: real: 2.432; user: 2.300; system: 0.060
n=16000
TIME: real: 11.824; user: 11.570; system: 0.120
n=32000
TIME: real: 59.008; user: 58.650; system: 0.230
n=64000
TIME: real: 151.948; user: 150.950; system: 0.670

Profile looks like this:
   45.11%             llvm::SUnit::ComputeHeight()
   34.51%             llvm::SUnit::setHeightDirty()
    1.52%             llvm::MachineInstr::addRegisterDead(unsigned int,
llvm::TargetRegisterInfo const*, bool)
    0.75%             llvm::SelectionDAG::AssignTopologicalOrder()

gcc is much faster and does not look quadratic

% for n in 8 16 32 64; do echo n=${n}000; time g++ -c -O2 manycalls$n.cc ; done
n=8000
TIME: real: 1.682; user: 1.620; system: 0.060
n=16000
TIME: real: 3.618; user: 3.550; system: 0.060
n=32000
TIME: real: 7.685; user: 7.410; system: 0.250
n=64000
TIME: real: 16.265; user: 15.810; system: 0.380

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list