[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