mondi
2012-Jul-26 20:27 UTC
[LLVMdev] Unable to schedule 'Dominator Tree Construction' required by 'Module Verifier'
I have a simple parser / JIT execution module which I recently split up into separate shared libraries. Previously, and as a test case, I'd generate IR, and immediately reparse / execute it. Now, the execution step lives in a separate but linked shared library. As soon as this happened, this error start popping up: Unable to schedule 'Dominator Tree Construction' required by 'Module Verifier' Unable to schedule pass UNREACHABLE executed at PassManager.cpp:1230! I've reduced it to the bare minimum test case - parser + linked execution, and it fails as long as the execution code is run from a dylib. This is with the latest SVN code, on OS X 10.8 Anyone else seen this behaviour? Hopefully I'm missing something obvious .m
Duncan Sands
2012-Jul-27 12:05 UTC
[LLVMdev] Unable to schedule 'Dominator Tree Construction' required by 'Module Verifier'
Hi Mondi, maybe: don't link your dynamic library against the LLVM libraries. If the tool you load it into is already linked against them (like the opt tool is) then global constructors will be run twice (once when your tool is started and once when the dynamic library is loaded) and strange things will happen. Ciao, Duncan. On 26/07/12 22:27, mondi wrote:> I have a simple parser / JIT execution module which I recently split up into separate shared libraries. > > Previously, and as a test case, I'd generate IR, and immediately reparse / execute it. Now, the execution step lives in a separate but linked shared library. As soon as this happened, this error start popping up: > > Unable to schedule 'Dominator Tree Construction' required by 'Module Verifier' > Unable to schedule pass > UNREACHABLE executed at PassManager.cpp:1230! > > I've reduced it to the bare minimum test case - parser + linked execution, and it fails as long as the execution code is run from a dylib. > > This is with the latest SVN code, on OS X 10.8 > > Anyone else seen this behaviour? Hopefully I'm missing something obvious > > .m > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
mondi at dyskinetic.com
2012-Jul-27 13:44 UTC
[LLVMdev] Unable to schedule 'Dominator Tree Construction' required by 'Module Verifier'
Thanks, that was exactly the problem. .m> Hi Mondi, maybe: don't link your dynamic library against the LLVM > libraries. > If the tool you load it into is already linked against them (like the opt > tool > is) then global constructors will be run twice (once when your tool is > started > and once when the dynamic library is loaded) and strange things will > happen. > > Ciao, Duncan. > > > On 26/07/12 22:27, mondi wrote: >> I have a simple parser / JIT execution module which I recently split up >> into separate shared libraries. >> >> Previously, and as a test case, I'd generate IR, and immediately reparse >> / execute it. Now, the execution step lives in a separate but linked >> shared library. As soon as this happened, this error start popping up: >> >> Unable to schedule 'Dominator Tree Construction' required by 'Module >> Verifier' >> Unable to schedule pass >> UNREACHABLE executed at PassManager.cpp:1230! >> >> I've reduced it to the bare minimum test case - parser + linked >> execution, and it fails as long as the execution code is run from a >> dylib. >> >> This is with the latest SVN code, on OS X 10.8 >> >> Anyone else seen this behaviour? Hopefully I'm missing something obvious >> >> .m >> >> >> >> _______________________________________________ >> 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 >
Reasonably Related Threads
- [LLVMdev] Unable to schedule 'Dominator Tree Construction' required by 'Module Verifier'
- [LLVMdev] Unable to schedule 'Dominator Tree Construction'?
- [LLVMdev] '___ltsf2' could not be resolved - iOS/ARM cross compile
- [LLVMdev] getnode(BB) = 0; block already in dominator tree
- [LLVMdev] How to traverse Dominator Tree in pre-order manner