ICC 程序集输出中的所有这些数字是什么意思?
What do all those numbers in ICC assembly output mean?
使用 ICC 编译时,每条指令后都是 2 个以点分隔的数字,并以哈希符号为前缀。这是什么意思?
L__routine_start__Z12testFunctionPii_0:
testFunction(int*, int):
push rbp #1.42
mov rbp, rsp #1.42
sub rsp, 32 #1.42
mov QWORD PTR [-24+rbp], rdi #1.42
mov DWORD PTR [-16+rbp], esi #1.42
mov DWORD PTR [-32+rbp], 0 #2.11
mov DWORD PTR [-28+rbp], 0 #3.14
..B1.2: # Preds ..B1.3 ..B1.1
mov eax, DWORD PTR [-28+rbp] #3.19
mov edx, DWORD PTR [-16+rbp] #3.23
cmp eax, edx #3.23
jge ..B1.4 # Prob 50% #3.23
...
这是一条注释,包含原始来源的行和列信息,因此您可以按照说明的来源进行操作。根据优化级别和 out-of-order execution
等功能,行不能按自然顺序排列。
使用 ICC 编译时,每条指令后都是 2 个以点分隔的数字,并以哈希符号为前缀。这是什么意思?
L__routine_start__Z12testFunctionPii_0:
testFunction(int*, int):
push rbp #1.42
mov rbp, rsp #1.42
sub rsp, 32 #1.42
mov QWORD PTR [-24+rbp], rdi #1.42
mov DWORD PTR [-16+rbp], esi #1.42
mov DWORD PTR [-32+rbp], 0 #2.11
mov DWORD PTR [-28+rbp], 0 #3.14
..B1.2: # Preds ..B1.3 ..B1.1
mov eax, DWORD PTR [-28+rbp] #3.19
mov edx, DWORD PTR [-16+rbp] #3.23
cmp eax, edx #3.23
jge ..B1.4 # Prob 50% #3.23
...
这是一条注释,包含原始来源的行和列信息,因此您可以按照说明的来源进行操作。根据优化级别和 out-of-order execution
等功能,行不能按自然顺序排列。