I've been puzzling over this for a day: Unable to schedule 'Unnamed pass: implement Pass::getPassName()' required by '<some pass>' Unable to schedule pass UNREACHABLE executed at llvm/lib/VMCore/PassManager.cpp:1213! First, why can't getPassName find the name? I have provided one in the usual way. Second, why is it unable to schedule the pass? -debug-pass=Details doesn't provide much help. This analysis pass is somewhat different in that it has a class hierarchy like this: MyPass | V MyPassBase<T> | V MachineFunctionPass I pass the static ID down through MyPassBase to MachineFunctionPass in the constructor. Is there any reason why this inheritance would cause a problem? The problem occurred when I factored most of MyPass out into MyPassBase for reuse. Thanks! -David
On Jun 14, 2013, at 1:12 PM, dag at cray.com wrote:> I've been puzzling over this for a day: > > Unable to schedule 'Unnamed pass: implement Pass::getPassName()' > required by '<some pass>' > Unable to schedule pass > UNREACHABLE executed at llvm/lib/VMCore/PassManager.cpp:1213! > > First, why can't getPassName find the name? I have provided one in the > usual way. Second, why is it unable to schedule the pass?The INITIALIZE_PASS macro is the usual way. Is that what you mean? You would need to initialize each subclass of MyPassBase separately and each needs its own ID. -Andy> -debug-pass=Details doesn't provide much help. > > This analysis pass is somewhat different in that it has a class > hierarchy like this: > > MyPass > | > V > MyPassBase<T> > | > V > MachineFunctionPass > > I pass the static ID down through MyPassBase to MachineFunctionPass in > the constructor. > > Is there any reason why this inheritance would cause a problem? The > problem occurred when I factored most of MyPass out into MyPassBase for > reuse. > > Thanks! > > -David > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130614/94c33c7b/attachment.html>
Andrew Trick <atrick at apple.com> writes:> On Jun 14, 2013, at 1:12 PM, dag at cray.com wrote: > > I've been puzzling over this for a day: > > Unable to schedule 'Unnamed pass: implement Pass::getPassName()' > required by '<some pass>' > Unable to schedule pass > UNREACHABLE executed at llvm/lib/VMCore/PassManager.cpp:1213! > > First, why can't getPassName find the name? I have provided one in > the > usual way. Second, why is it unable to schedule the pass? > > > The INITIALIZE_PASS macro is the usual way. Is that what you mean? > > You would need to initialize each subclass of MyPassBase separately > and each needs its own ID.I figured out the problem. I was passing the ID *value* to the superclass instead of a reference. Confusing error message. :) -David