使用Intel编译器(0)基础(2)基本块Basic Block
2011-12-09 10:37
337 查看
参考手册:
http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/index.htm
说明:本系列文章为个人笔记,如有不正确之处,请参考官方相关文档,如果错误发现,我会尽量更新修改。另外,以下内容不保证对于所有版本的编译器都正确,编译器的实现也可能有一些变化之处,具体参考官方文档。
更多说明请参考/article/8516772.html中补充说明部分。
参考:
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. 只有一个出口,表示程序只有最后一条指令能导致进入到其它基本块去执行。
所以,基本块的一个典型特点是:只要基本块中第一条指令被执行了,那么基本块内所有执行都会按照顺序仅执行一次。
基本块可以用源代码、汇编、指令等表示。
http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/index.htm
说明:本系列文章为个人笔记,如有不正确之处,请参考官方相关文档,如果错误发现,我会尽量更新修改。另外,以下内容不保证对于所有版本的编译器都正确,编译器的实现也可能有一些变化之处,具体参考官方文档。
更多说明请参考/article/8516772.html中补充说明部分。
参考:
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. 只有一个出口,表示程序只有最后一条指令能导致进入到其它基本块去执行。
所以,基本块的一个典型特点是:只要基本块中第一条指令被执行了,那么基本块内所有执行都会按照顺序仅执行一次。
基本块可以用源代码、汇编、指令等表示。
相关文章推荐
- 使用Intel编译器(0)基础(3)循环相关的优化技术Loop optimization
- 使用Intel编译器(2)向量化(1)自动向量化基础
- 使用Intel编译器(1)并行化(1)自动并行化基础
- 使用Intel编译器(0)基础(1)内联
- 使用Intel编译器系列合集
- 使用Intel编译器系列合集
- Linux入职基础-7.2_gcc编译器简单使用
- 使用Intel编译器系列合集
- 使用Intel编译器(5)PGO(8)编译器其它工具
- 使用Intel编译器系列合集
- 使用Intel 向量化编译器优化性能(3)
- 使用Intel编译器(5)PGO(6)PGO工具之profmerge&proforder
- 使用Intel编译器(5)PGO(4)PGO工具之代码覆盖工具(code coverage)
- 使用Intel编译器系列合集
- 使用Intel 向量化编译器优化性能(3)
- 使用Intel编译器(4)IPO(1)IPO了解和使用
- 使用Intel编译器(1)并行化(2)自动并行化代码相关
- 使用intel编译器的指令窗口 intel fortran compiler
- Linux下C语言编程基础知识--gcc编译器的使用、MakeFile文件的编写
- 使用Intel编译器(1)并行化(4)向导自动并行化(GAP)