基本块(Basic Block)

基本块是一段只有单一入口和单一出口的指令序列。图 BasicBlock 展示了一个基本块的简单示例,其中 MOV 指令是入口,JA 是出口指令。如果控制流可以从基本块 BB1 转到 BB2,则称 BB1BB2前驱(predecessor)。类似地,如果控制流可以从 BB2 转到 BB3,则称 BB3BB2后继(successor)。虽然一个基本块可以有一个或多个前驱和后继,但中间的任何指令都不能进入或退出基本块。

汇编指令的基本块。

汇编指令的基本块。

可以保证基本块中的每条指令只会被执行一次。这是一个重要属性,被许多编译器变换所利用。例如,它极大地简化了控制流图(control flow graph)的分析和变换问题,因为对于某些类型的问题,我们可以将基本块中的所有指令视为一个整体。

results matching ""

    No results matching ""