爲什麼我必須這樣做mem2reg傳遞字節碼優化以獲得另一個優化傳遞結果? mem2reg有什麼用?爲什麼優化通過沒有mem2reg不起作用?
opt -dce myfile.bc
在這種情況下
我有在我有在輸出代碼更改這第二種情況下的輸出代碼
opt -mem2reg -dce myfile.bc
不變化
編輯: LLVR IR仍然爲SSA形式,不是嗎?使用mem2reg我應該有一個「修剪」的SSA形式,是嗎?
爲什麼我必須這樣做mem2reg傳遞字節碼優化以獲得另一個優化傳遞結果? mem2reg有什麼用?爲什麼優化通過沒有mem2reg不起作用?
opt -dce myfile.bc
在這種情況下
我有在我有在輸出代碼更改這第二種情況下的輸出代碼
opt -mem2reg -dce myfile.bc
不變化
編輯: LLVR IR仍然爲SSA形式,不是嗎?使用mem2reg我應該有一個「修剪」的SSA形式,是嗎?
mem2reg pass將LLVM IR的非SSA格式轉換爲SSA格式,將堆棧分配值加載和存儲到「寄存器」(SSA值)。許多LLVM優化傳遞以SSA形式對代碼進行操作,因此很可能無人看到非SSA形式的IR。更
有點信息是在這裏:http://llvm.org/docs/Passes.html#mem2reg-promote-memory-to-register
那麼,什麼是代碼樣子? (嘗試運行'llvm-dis'或其他所謂的東西。)一種優化使另一種優化成爲可能。 – delnan 2012-03-20 19:33:49
是的,我知道這一點,但我的問題是mem2reg是什麼?它做什麼樣的優化? – Nicola 2012-03-20 23:59:41