[LLVMbugs] [Bug 1408] NEW: Simple Analysis
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Thu May 10 11:40:36 PDT 2007
http://llvm.org/bugs/show_bug.cgi?id=1408
Summary: Simple Analysis
Product: libraries
Version: trunk
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P2
Component: Core LLVM classes
AssignedTo: unassignedbugs at nondot.org
ReportedBy: dpatel at apple.com
Alias information, dominator information, loop information etc... are used by various transformation
passes. The interface available to the pass to preserve these information is not simple and straight
forward. This results in cases of "will do later". For example, Loop Rotate pass :)
1)
This can be simplified if analysis pass enforces SimpleAnalysis protocol.
class SimpleAnalysis {
void addNewBlock(BasicBlock *B) = 0;
void addNewInstruction(Instruction *I) = 0;
void updateBasicBlock(BasicBlock *B) = 0;
void updateInstruction(Instruction *I) = 0;
void deleteBasicBlock(BasicBlock *B) = 0;
void deleteInstruction(BasicBlock *I) = 0;
};
2) Pass Manager should be updated to keep track of available analysis passes that implements
SimpleAnalysis protocol and provide a way to update _all_ such information.
Instead of
if (ET = getAnalysisToUpdate<ETForest>()) {
...
}
if (DI = getAnalysisToUpdate<DominatorTree>()) {
...
}
if (LI = getAnalysisToUpdate<LoopInfo>()) {
...
}
one should be able to do
if (SA = getSimpleAnalysis()) {
SA.addBasicBlock(NewPreheader);
SA.updateBasicBlock(Header1);
SA.updateBasicBlock(PreHeader1);
...
}
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list