I'm trying to use Alice Elalisis within a module have (Elelvim 3.4). This is a very common problem with two main solutions, but I am not able to work it.
With the following simple test program:
# include & lt; Stdio.h & gt; Static Int GX; Zero F () {gx = 1; } Int main () {printf ("hello. \ N"); Return 0; }
Compiled like this: clang ++ -O0 -c -emit-llvm -o test.bc test.cpp
and My simple pass:
class debugpass: public modulepace {public: static four id; Debugpass (): Modulepace (ID) {} Virtual Zero Acquisition Analysis Unit (Analysis User and AU) const {AU.setPreservesAll (); AU.addRequired & LT; AliasAnalysis & gt; (); } Virtual bool runOnModule (module & amp; M) function {f = {fit (Module :: iterator fit = M.begin (), Fite = M.end (); ++ fit, fit = Fite! ); If (F-> Declaration ()) is in progress; Errs () & lt; & Lt; "For AA" and Lieutenant; & Lt; F-> Getannam () & lt; & Lt; "\ N"; Alliance Analysis & AA = Mill Analysis & LT; Aliases analysis & gt; (* F); } return false; }} Char debugpass :: id = 0; Stable register pay & lt; DebugPass & gt; X ("test debug", "debugging pass", false, false);
By using this way to me: opt-load ../Debug+Asserts/lib/TestLib.dylib -basicaa -testdebug & lt; Test.bc & gt; / Dev / null
I am seeing the following perception failure:
_Z1fv Asserting is getting to AA Failed: (FPP & amp; & amp; "unable to find a fly pass"), function getOnTheFlyPass, file LegacyPassManager.cpp, line 1682. ... 6 opt 0x0000000102e5ba62 abort + 18 7 opt 0x0000000102e5ba41 __assert_rtn + 12 9 8 opt 0x0000000102d94820 (anonymous namespace) :: MPPassManager :: getOnTheFlyPass (llvm :: * Pass, zero constants *, LLVM :: function & amp;) + 144 9 non-virtual thunk opt to 0x0000000l02d949cf (anonymous namespace) :: MPPassManager: : getOnTheFlyPass (LLVM :: Pass *, void * constants, LLVM :: function & amp;) + 63 10 opt 0x0000000102d8ed4e LLVM :: AnalysisResolver :: findImplPass (LLVM :: Pass *, void * constants, LLVM :: Sam Row & amp;) + 78 11 TestLib.dylib 0x0000000104ba9bac LLVM :: AliasAnalysis & amp; LLVM :: Pass :: getAnalysisID & LT; LLVM :: AliasAnalysis & gt; (Zero constant *, LLVM :: function & amp;) + 236 12 TestLib.dylib 0x0000000104b9eef6 LLVM :: AliasAnalysis & amp; Llvm :: Pass :: getAnalysis & lt; Llvm :: aliases analysis & gt; (Llvm :: function & amp;) + 134 13 TestLib.dylib 0x0000000104bdc287 DebugPass :: runOnModule (llvm :: Module & amp;) + 215
Any insights into what's going wrong Can provide?
EDIT: Here is the composition through the -debug-pass = structure
:
Logic pass: -targetlibinfo -datalayout -notti -basictti -x86tti -no-aa -basicaa -testdebug -preverify -domtree -verify Target Library Information Data Layout No Target Information Targeted TTI X86 Targeted Information No Aka Analysis (Always Conversion Returns may be 'Alias' ) Original alias analysis (Stateless AA implementation) module manager debugging pass functionpace Mandk initial module verification Dominator Tree Construction Module Verifier Bitcode Writer
It is important that I have debugging function grinding Manager? I am not practicing in the interpretation of near output output.
Comments
Post a Comment