0
如何確定物理CPU寄存器在給定時間是否包含「已使用」值,即它是否帶電?我正在使用LLVM 3.4 C++ API。LLVM:檢查物理寄存器是否帶電
如何確定物理CPU寄存器在給定時間是否包含「已使用」值,即它是否帶電?我正在使用LLVM 3.4 C++ API。LLVM:檢查物理寄存器是否帶電
簡答:你不能。長時間回答:LLVM IR表示一些具有無限數量鍵入寄存器的虛擬機。沒有任何信息在代碼生成之前如何將所有東西變成物理寄存器。
執行寄存器分配後,註冊活動信息在後端內部可用。
LLVM在物理寄存器甚至輸入圖片之前可能會做的90%。你真的在寫一個RA之後的機器碼傳遞嗎? – delnan 2014-10-07 14:36:10
我不想寫一個傳球(編輯:除非我必須)。我在多個實例中使用由llvm編譯的程序,我想比較包括堆棧和物理寄存器在內的實例的狀態。 – hooch 2014-10-07 14:47:47
您可以分析機器代碼,看看寄存器是否會在下一條指令寫入之前被讀取。不幸的是,我不知道如何讓LLVM幫助你。 – delnan 2014-10-07 14:59:23