[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