以下是计算领导者集合的一套规则
1第一个元组是领导者
如果存在元组,则元组L是领导者,如果...转到L或转到L。
3元组L是一个领导者,如果它紧跟一个元组,如果...转到B或转到B
我理解1和3,但2对我来说看起来很混乱。有人可以通过一个例子清理2吗?
答案 0 :(得分:2)
术语与我习惯的术语不符,但我假设元组是程序中的通用指令/语句。
在该假设下,第二规则规定如果指令L是goto的目标,即如果任何指令跳转到L,则L是基本块的前导。例如,请考虑以下事项:
0: A = A + 1
1: B = A + 7
2: if A < 5 goto 6
3: A = A - 5
4: K = f(A)
5: Y = 12
6: Z = 12
7: return A
在这个例子中,0
是根据规则1的领导者(它是第一条指令),3
是根据规则3的领导者(它紧跟在跳跃之后),6
1}}是根据规则2的领导者(它是跳跃的目标)。