2012-03-19 35 views
0

我想編寫一個llvm通過爲了做內聯優化因此我調用方法getAnalysis()但我有分段錯誤。爲什麼?這是我使用的代碼:如何寫內嵌llvm通

using namespace llvm; 
namespace { 

    struct MyInline : public ModulePass { 

static char ID; 
MyInline2() : ModulePass(ID) {} 

virtual bool runOnModule(Module &M) { 
    errs() << "Hello2: "; 
    CallGraph &CG = getAnalysis<CallGraph>(); 

    return false; 
} 
    }; 
} 
char MyInline::ID = 0; 
static RegisterPass<MyInline> X("MyInline", "MyInline Pass", false, false); 
+0

不是用「[解決]」標記標題,而是點擊解決問題的答案旁邊的綠色複選標記以接受答案。 – 2012-03-20 16:10:20

回答

1

要使用getAnalysis(),必須先覆蓋getAnalysisUsage(),大概是有必要的分析數據爲您設置好。

getAnalysisUsage - 該函數應該被 需要分析信息來完成他們的工作所覆蓋。如果通過指定 對此函數使用特定分析結果,則它可以使用下面的getAnalysis()函數 。

+0

非常感謝! =) – Mari 2012-03-20 14:03:49