2015-11-05 31 views
1

在一般情況下,如果我放了兩個LLVM進入到一個命令行調用,這樣的...多LLVM通過與單呼

$(LLVM_HOME)opt -my-pass -another-pass <foo1.bc> foo2.bc 

...這是定義爲完全一樣運行兩次通過連續,與另外的中間文件,像這樣...

$(LLVM_HOME)opt -my-pass <foo1.bc> foo11.bc 
$(LLVM_HOME)opt -another-pass <foo11.bc> foo2.bc 

...或以某種方式同時執行這兩個道次?

+1

它們在內部通常是不同的。您可以使用'--debug-pass = Structure'來查看究竟發生了什麼。有關更多詳細信息,請參閱[此處](http://llvm.org/docs/WritingAnLLVMPass.html#pass-statistics)。 –

回答

1

如果兩個通行證都是轉換通行證,如-simplifycfg-licm,那麼可以,您可以考慮在兩者之間存在中間文件並按照您的建議運行命令。

但是,也存在分析過程,如用於別名分析的-aa。這些不會正如你所描述的那樣工作,因爲他們不按摩IR,他們只是提供通行證的信息(例如-licm)。

因此,opt -aa -licm不等於opt -aa後跟opt -licm