[LLVMbugs] [Bug 1868] New: PassManager does not reschedule invalidated passes
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Mon Dec 17 12:02:01 PST 2007
http://llvm.org/bugs/show_bug.cgi?id=1868
Summary: PassManager does not reschedule invalidated passes
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Core LLVM classes
AssignedTo: unassignedbugs at nondot.org
ReportedBy: criswell at uiuc.edu
CC: llvmbugs at cs.uiuc.edu
Created an attachment (id=1300)
--> (http://llvm.org/bugs/attachment.cgi?id=1300)
LLVM Source file that will trigger the bug
I get the following assertion failure in my tool that schedules several LLVM
passes:
test: /home/vadve/criswell/src/llvm22/lib/VMCore/PassManager.cpp:1285: virtual
void llvm::MPPassManager::addLowerLevelRequiredPass(llvm::Pass*, llvm::Pass*):
Assertion `(P->getPotentialPassManagerType() <
RequiredPass->getPotentialPassManagerType()) && "Unable to handle Pass that
requires lower level Analysis pass"' failed.
My investigation currently leads me to believe that when a pass is invalidated,
the Pass Manager does not properly reschedule it.
In the attached code, I have three passes: BottomPass, Pass1, and Pass2. Pass1
preserves all analyses; Pass2 preserves none. BottomPass requires both Pass1
and Pass2. When BottomPass is added to the PassManager, PassManager will first
schedule Pass1 and Pass2. However, Pass2 invalidates Pass1, so Pass1 is taken
off the AvailableAnalysis list in PMDataManager. Later on, PassManager goes
looking for Pass1 and, not finding it, assumes it's a lower level pass.
However, since it's a ModulePass (like BottomPass), it hits the assertion and
aborts.
--
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