2011-04-22 62 views
0

在我的傳球中,我想知道循環的位置。例如,在for循環中,如:源文件中循環的位置

for(int i=0; i<n; i++) { ... } 

的源文件中的行號(...)是我很感興趣,如果是由LLVM-GCC產生的.BC文件。用-O0,我可以通過讀取循環的第一條指令的行號來輕鬆獲取這些信息。但是,如果使用-O3,則此方法不起作用。在這種情況下,我仍然可以獲得環路位置?

回答

0

一般來說,你不能,因爲你的循環可能會被編譯器轉化(例如展開,扭轉等)

+0

但環位置信息可以被添加到元數據的指令。我知道IBM的XL編譯器能夠做到這一點。 – dalibocai 2011-04-22 14:04:28