我想了解和修改用於不同硬件架構的LLVM opt
中使用的通道。如何查看LLVM選項使用哪些優化傳遞?
2
A
回答
0
假設你正在使用鐺,使用-debug通=參數選項,看看有什麼通行證被在每個優化級別運行
1
opt
可以告訴你哪些通過它在給定的一段LLVM IR的運行:
$ opt -O2 -debug-pass=Arguments example_file.ll -disable-output
Pass Arguments: -tti -no-aa -tbaa -scoped-noalias -assumption-cache-tracker -targetlibinfo -basicaa -verify -simplifycfg -domtree -sroa -early-cse -lower-expect
Pass Arguments: -targetlibinfo -tti -no-aa -tbaa -scoped-noalias -assumption-cache-tracker -basicaa -ipsccp -globalopt -deadargelim -domtree -instcombine -simplifycfg -basiccg -prune-eh -inline-cost -inline -functionattrs -domtree -sroa -early-cse -lazy-value-info -jump-threading -correlated-propagation -simplifycfg -domtree -instcombine -tailcallelim -simplifycfg -reassociate -domtree -loops -loop-simplify -lcssa -loop-rotate -licm -loop-unswitch -instcombine -scalar-evolution -loop-simplify -lcssa -indvars -loop-idiom -loop-deletion -loop-unroll -mldst-motion -domtree -memdep -gvn -memdep -memcpyopt -sccp -domtree -bdce -instcombine -lazy-value-info -jump-threading -correlated-propagation -domtree -memdep -dse -loops -loop-simplify -lcssa -licm -adce -simplifycfg -domtree -instcombine -barrier -float2int -domtree -loops -loop-simplify -lcssa -loop-rotate -branch-prob -block-freq -scalar-evolution -loop-accesses -loop-vectorize -instcombine -scalar-evolution -slp-vectorizer -simplifycfg -domtree -instcombine -loops -loop-simplify -lcssa -scalar-evolution -loop-unroll -instcombine -loop-simplify -lcssa -licm -scalar-evolution -alignment-from-assumptions -strip-dead-prototypes -elim-avail-extern -globaldce -constmerge -verify
查看源代碼,這是一般的問題:
實例化PassManagerBuilder
並調用SetOptLevel
。 建造者然後adds the passes as part of populateModulePassManager。
請注意,the default pass orderings have been tuned for C/C++並不一定適用於其他語言。
+0
爲什麼他們是兩個通過參數列表? – Kyriakos 2017-01-10 14:09:37
相關問題
- 1. LLVM - 前端做了哪些優化
- 2. LLVM進行哪些優化以及前端必須實現哪些優化?
- 3. LLVM,CLang和LLC優化傳遞
- 4. Android UI優化有哪些選項?
- 5. LLVM執行哪種優化?
- 6. 哪些JVM選項優先?
- 7. LLVM優化傳遞需要使用什麼級別?
- 8. 使用在LLVM優化級別傳遞給鏈接器的參數(LLVM-passes)
- 9. LLVM如何O2優化
- 10. 哪些更優化?
- 11. 如果您不傳遞任何信息,rsync會使用哪些默認選項?
- 12. 哪些LLVM通道負責浮點優化?
- 13. llvm優化
- 14. 在叮噹聲中爲-O4做了哪些優化傳遞?
- 15. 如何在LLVM中禁用優化
- 16. 優化SVG有哪些選擇?
- 17. 如何指定哪些Require.js模塊使用優化器壓縮,哪些不是?
- 18. 如何查看我的proc中有哪些輸出選項可用?
- 19. 如何使用LLVM API在函數中查找使用哪些全局變量?
- 20. 如何判斷bjam使用哪些優化來構建提升
- 21. 如何顯示某個單詞可以使用哪些優化?
- 22. SQL查看優化
- 23. SQL Server 2005如何查看哪些變量正在傳遞到proc中
- 24. simplifyCFG傳遞LLVM
- 25. 查看哪些站點使用IIS 7中的哪些IP
- 26. 使用這些MySQL表優化查詢
- 27. 哪些選項可以傳遞給在遊戲框架
- 28. 如何查看RCurl選項
- 29. 如何優化這些SQL查詢?
- 30. 如何優化這些查詢?
我沒有使用clang,而是使用從LLVM IR格式的另一個編譯器生成的IR文件,我想嘗試在(.ll)文件中選擇修改某些opt的功能以查看其影響,主要是想要刪除專門的X86通過 – 2013-02-12 15:32:56