[LLVMbugs] [Bug 1835] New: Register pressure reduction list schedulers are extremely slow on very long basic blocks

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Sat Dec 1 09:29:03 PST 2007


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

           Summary: Register pressure reduction list schedulers are
                    extremely slow on very long basic blocks
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Common Code Generator Code
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: romixlev at yahoo.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=1275)
 --> (http://llvm.org/bugs/attachment.cgi?id=1275)
A BC file containing a very long basic block

During the work on BigBlock regalloc, Duraid provided me with some test *.bc
files  for testing. They contain very, very long basic blocks. 

Before recent changes done by Evan in ScheduleDAGRRList.cpp, those files could
be compiled by LLC is a reasonable time, when RR schedulers were used. But
since a while, there is a huge compile-time regression. After running under a
profiler, it turned out that it is the isReachable() function in this file,
that comsumes up-to 98% of the LLC run-time on those input files with very long
basic blocks.

Most likely, a more efficient data structure than a SmallPtrSet should be used
in isReachable() function to improve the performance.

Attached are a few basic blocks for your use, provided by Duraid. They are all
of the following simple form:

        - load some 128-bit vector values from an array in memory
        - perform various logical operations using these values as input
        - store the results to another array in memory

        There is no flow control at all (other than a "ret void" at the
end of each function!), so there's just one basic block in each of the files
attached.


-- 
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