Arnaldo started to implement initial loop detection in the perf annotate browser. The idea is (was) that backward jumps are mode visible. Currently forward jumps are displayed with some UNICODE character (libslang?):
0,00 │ test %eax,%eax 0,00 │ ↓ je bc 0,00 │ cmpl $0x0,0x4ca034(%rip) # ffffffff81aacb80 <debug\_locks\_silent> 0,00 │ ↓ jne bc 0,00 │ mov $0xbf4,%esi 0,00 │ mov $0xffffffff818039ac,%rdi 0,00 │ callq warn\_slowpath\_null 0,00 │ ↓ jmp bc 12,90 │ 53: mov %gs:0xb760,%rax 4,15 │ add %ebx,-0x1fbc(%rax) 0,00 │ test %edx,%edx 0,00 │ ↓ jne 92 3,69 │ cmpb $0xf4,-0x1fbc(%rax) 0,00 │ ↓ jbe 92 0,00 │ callq debug\_locks\_off 0,00 │ test %eax,%eax 0,00 │ ↓ je 92 0,00 │ cmpl $0x0,0x4c9ff3(%rip) # ffffffff81aacb80 <debug\_locks\_silent> 0,00 │ ↓ jne 92 0,00 │ mov $0xbfd,%esi 0,00 │ mov $0xffffffff818039ac,%rdi 0,00 │ callq warn\_slowpath\_null The currently algorithm illustrated in the image use a simple heuritic to show jumps that points to before the cursor....