基本块
基本块是一系列具有单个入口和单个出口的指令。图@fig:BasicBlock 显示了一个基本块的简单示例,其中 MOV
指令是一个入口,而 JA
是一个退出指令。虽然一个基本块可以有一个或多个前驱和后继,但中间的指令不能进入或退出基本块。
保证基本块中的每条指令都会被执行一次。这是一个重要的属性,被许多编译器转换所利用。例如,它极大地减少了控制流图分析和转换的问题,因为对于某些问题类别,我们可以将基本块中的所有指令视为一个实体。
基本块是一系列具有单个入口和单个出口的指令。图@fig:BasicBlock 显示了一个基本块的简单示例,其中 MOV
指令是一个入口,而 JA
是一个退出指令。虽然一个基本块可以有一个或多个前驱和后继,但中间的指令不能进入或退出基本块。
保证基本块中的每条指令都会被执行一次。这是一个重要的属性,被许多编译器转换所利用。例如,它极大地减少了控制流图分析和转换的问题,因为对于某些问题类别,我们可以将基本块中的所有指令视为一个实体。