使用Intel编译器(0)基础(2)基本块Basic Block

参考手册:

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/index.htm


说明:本系列文章为个人笔记,如有不正确之处,请参考官方相关文档,如果错误发现,我会尽量更新修改。另外,以下内容不保证对于所有版本的编译器都正确,编译器的实现也可能有一些变化之处,具体参考官方文档。


更多说明请参考http://blog.csdn.net/gengshenghong/article/details/7034748中补充说明部分。


参考:

wiki:http://en.wikipedia.org/wiki/Basic_block

http://gcc.gnu.org/onlinedocs/gccint/Basic-Blocks.html


(1) Wiki解释:

In computing, a basic block is a portion of the code within a program with certain desirable properties that make it highly amenable to analysis. Compilers usually decompose programs into their basic blocks as a first step in the analysis process. Basic blocks form the vertices or nodes in a control flow graph.

这是一个“感性“的解释,只说了是程序中具有一些特性的一段代码。基本块是编译器对代码进行分析的第一步,即把程序拆分为很多基本块进行分析。基本块组成了控制流图的顶点或节点。


(2) 什么是基本块?

上面说到了基本块是具有一些特性的一段代码,具体而言:

1. 只有一个入口,表示程序中不会有其它任何地方能通过jump跳转类指令进入到此基本块中。

2. 只有一个出口,表示程序只有最后一条指令能导致进入到其它基本块去执行。

所以,基本块的一个典型特点是:只要基本块中第一条指令被执行了,那么基本块内所有执行都会按照顺序执行一次

基本块可以用源代码、汇编、指令等表示。


你可能感兴趣的:(并行计算高性能计算HPC,—,Compiler)