[LLVMdev] Infinite loop when adding a new analysis pass
Junjie Gu
jgu222 at gmail.com
Mon Aug 22 15:03:12 PDT 2011
I am trying to add an analysis pass as a FunctionPass, and let LICM
(LoopPass) depends upon it. So in LICM.cpp, I have the following:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<DominatorTree>();
AU.addRequired<LoopInfo>();
AU.addRequiredID(LoopSimplifyID);
AU.addRequired<AliasAnalysis>();
AU.addRequired<MyAnalysis>(); // Add this
AU.addPreserved<AliasAnalysis>();
AU.addPreserved("scalar-evolution");
AU.addPreservedID(LoopSimplifyID);
}
char LICM::ID = 0;
INITIALIZE_PASS_BEGIN(LICM, "licm", "Loop Invariant Code Motion", false, false)
INITIALIZE_PASS_DEPENDENCY(DominatorTree)
INITIALIZE_PASS_DEPENDENCY(LoopInfo)
INITIALIZE_PASS_DEPENDENCY(LoopSimplify)
INITIALIZE_PASS_DEPENDENCY(MyAnalysis)
// add this dependency
INITIALIZE_AG_DEPENDENCY(AliasAnalysis)
INITIALIZE_PASS_END(LICM, "licm", "Loop Invariant Code Motion", false, false)
Howerver, I got an infinite loop when trying
opt -O3 t.bc -o out.bc
Where t.bc is created using clang from
int main() { return 0; }
What am I missing ?
All files are attacahed (include/Analysis/MyAnalysis.h,
lib/Analysis/MyAnanlysis.cpp, and diffs to the existing files).
Thanks
Junjie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MyAnalysis.cpp
Type: text/x-c++src
Size: 158 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110822/c50f4d77/attachment.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MyAnalysis.h
Type: text/x-chdr
Size: 451 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110822/c50f4d77/attachment.h>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: myana.diff
Type: application/octet-stream
Size: 3141 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110822/c50f4d77/attachment.obj>
More information about the llvm-dev
mailing list