Loops 如何在指令级识别循环?

Loops 如何在指令级识别循环?,loops,assembly,architecture,instructions,Loops,Assembly,Architecture,Instructions,目标地址低于分支指令本身地址的直接分支指令能否被视为循环的开始?这个条件是否足够,或者是否存在在指令级显示类似行为的其他情况(编译器优化等) 你会推荐什么其他方法?最明显的一个是存储遇到的目标地址列表,如果一个目标地址被同一条指令多次占用,这意味着它是循环的开始。这样做的缺点是它会占用存储所有地址和检查时间的内存。分支可以被视为循环的结束。这是不够的,你总是可以在c中使用goto,然后跳转到某个地方。这就是忽略延迟槽和其他优化。是的,我知道忽略的想法gotos@tomato还有什么其他优化?定义

目标地址低于分支指令本身地址的直接分支指令能否被视为循环的开始?这个条件是否足够,或者是否存在在指令级显示类似行为的其他情况(编译器优化等)


你会推荐什么其他方法?最明显的一个是存储遇到的目标地址列表,如果一个目标地址被同一条指令多次占用,这意味着它是循环的开始。这样做的缺点是它会占用存储所有地址和检查时间的内存。

分支可以被视为循环的结束。这是不够的,你总是可以在c中使用goto,然后跳转到某个地方。这就是忽略延迟槽和其他优化。是的,我知道忽略的想法gotos@tomato还有什么其他优化?定义循环…你是说高级语言循环还是指令级循环?教学是很明显的,高水平的你不会找到一个简单的方法来解决它,不值得付出努力。