Issue |
137326
|
Summary |
use TargetIRAnalysis or any analysis crash ??
|
Labels |
new issue
|
Assignees |
|
Reporter |
ductai230894
|
hello every body, current I develop plugin of llvm
but when plugin run
when I get result of TargetIRAnalysis from FunctionAnalysisManager, it always crash
error
Exception has occurred: W32/0xC0000005
opt.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
this is my minimize code
PreservedAnalyses MySamplePass::run(Function &F,
FunctionAnalysisManager &AM)
{
if (F.isDeclaration() || F.empty())
return PreservedAnalyses::all();
llvm::errs() << "[Debug] FAM address: " << &AM << "\n";
if (!F.getParent()) {
llvm::errs() << "[Error] Function has no parent Module!\n";
llvm::errs() << "[Debug] FAM address: " << &AM << "\n";
return PreservedAnalyses::all(); // or handle error
}
const DataLayout &DL = F.getParent()->getDataLayout();
if (DL.isDefault()) {
llvm::errs() << "[Error] Function's Module has no valid DataLayout!\n";
llvm::errs() << "[Debug] FAM address: " << &AM << "\n";
return PreservedAnalyses::all();; // or handle error
}
AM.getResult<TargetIRAnalysis>(F); //it crash
}
I already add TargetIRAnalysis
extern "C" LLVM_ATTRIBUTE_WEAK ::llvm::PassPluginLibraryInfo llvmGetPassPluginInfo() {
return {
LLVM_PLUGIN_API_VERSION,
"LLvmObfuscator",
"v1.0",
[](llvm::PassBuilder &PB) {
// ✅ Register required analyses
PB.registerAnalysisRegistrationCallback(
[](FunctionAnalysisManager &FAM) {
FAM.registerPass([] { return AssumptionAnalysis(); });
FAM.registerPass([] { return DominatorTreeAnalysis(); });
FAM.registerPass([] { return LazyValueAnalysis(); });
FAM.registerPass([] {
return TargetIRAnalysis([](const Function &F) {
return TargetIRAnalysis::Result(F.getDataLayout());
});
});
});
registerObfuscatorPasses(PB);
}
};
}
can any else help me
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs