[LLVMdev] Pass Manager hangs with CallGraph and LoopSimplify
Nick Johnson
nicholas.paul.johnson at gmail.com
Mon May 11 13:27:01 PDT 2009
> See http://llvm.org/docs/GettingStarted.html#brokengcc and then try building with something OTHER than GCC 4.1.2 .
I have confirmed this bug with GCC v 4.2.4, which is NOT on your list.
Nick
>
>
>
> ----- Original Message ----
>> From: Nick Johnson <npjohnso at cs.princeton.edu>
>> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu>
>> Sent: Monday, May 11, 2009 3:01:12 PM
>> Subject: [LLVMdev] Pass Manager hangs with CallGraph and LoopSimplify
>>
>> Hello,
>>
>> I have discovered a situation in which the pass manager will infinite
>> loop. The minimal test case is below this message. The required
>> structure of these passes is;
>>
>> Before requires CallGraph
>> After requires LoopSimplify and Before
>>
>> I can observe this through opt:
>>
>> opt -load ./libBug.so -after input.bc -o output.bc
>>
>> I built my copy of llvm from svn revision 68820 using gcc 4.1.2
>>
>> Any suggestions?
>> --
>> Nick Johnson
>>
>>
>>
>>
>> #include "llvm/Pass.h"
>> #include "llvm/Transforms/Scalar.h"
>> #include "llvm/Analysis/CallGraph.h"
>>
>>
>> using namespace llvm;
>>
>> class Before : public ModulePass {
>> public:
>> static char ID;
>> Before() : ModulePass(&ID) {}
>>
>> void getAnalysisUsage(AnalysisUsage &au) const {
>> au.addRequired< CallGraph >();
>> au.setPreservesAll();
>> }
>>
>> bool runOnModule(Module &m) { return false; }
>> };
>>
>> class After : public FunctionPass {
>> public:
>> static char ID;
>>
>> After() : FunctionPass(&ID) {}
>>
>> void getAnalysisUsage(AnalysisUsage &au) const {
>> au.addRequiredID( LoopSimplifyID );
>> au.addRequired< Before >();
>> au.setPreservesAll();
>> }
>>
>> bool runOnFunction(Function &f) { return false; }
>> };
>>
>> char Before::ID = 0;
>> char After::ID = 0;
>> namespace {
>> RegisterPass< Before > x("before", "before");
>> RegisterPass< After > y("after", "after");
>> }
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
--
Nick Johnson
More information about the llvm-dev
mailing list