[LLVMdev] loadable passes with dependencies?
ret val
retval386 at gmail.com
Tue Nov 8 11:50:01 PST 2011
Just shows me what I expect
void getAnalysisUsage(AnalysisUsage &AU) const {
DominatorTree *dt = &getAnalysis<DominatorTree>();
So I'm only using it for DominatorTree(so I can use PromoteMemToReg).
Thanks
On Tue, Nov 8, 2011 at 2:28 PM, Tobias Grosser <tobias at grosser.es> wrote:
> On 11/08/2011 07:33 PM, ret val wrote:
>>
>> Sorry to keep dragging this out on you. Im now getting: Assertion
>> failed: (ResultPass&& "getAnalysis*() called on an analysis that was
>> not " "'required' by pass!"), function getAnalysisID
>>
>> But I already have:
>> void getAnalysisUsage(AnalysisUsage&AU) const {
>> AU.addRequired<DominatorTree>();
>> }
>>
>> And changed the bottom of my pass too:
>>
>> char Hello::ID = 0;
>> namespace llvm { void initializeHelloPass(llvm::PassRegistry&); }
>> INITIALIZE_PASS_BEGIN(Hello, "hello", "Hello World Pass", false, true)
>> INITIALIZE_PASS_DEPENDENCY(DominatorTree)
>> INITIALIZE_PASS_END(Hello, "hello", "Hello World Pass", false, true)
>>
>> class StaticInitializer {
>> public:
>> StaticInitializer() {
>> PassRegistry&Registry = *PassRegistry::getPassRegistry();
>> initializeHelloPass(Registry);
>> }
>> };
>>
>> static StaticInitializer InitializeEverything;
>
> Looks good to me. Are you sure you call getAnalysis only for the
> DominatorTree? What is the output of "grep getAnalysis YourPass.cpp"?
>
> Cheers
> Tobi
>
More information about the llvm-dev
mailing list