美文网首页
编译原理——基本块内数据流

编译原理——基本块内数据流

作者: 牛程程 | 来源:发表于2017-10-25 22:24 被阅读0次

    •全局通用子表达式:一个重要的优化是在两个不同的基本块中找到相同表达式的计算。如果先于另一个,我们可以在第一次计算结果时存储结果,并在后续出现时使用存储的结果。
    •复制传播:复制语句u - v将一个变量v分配给另一个变量u。在某些情况下,我们可以用v替换u的所有用途,从而消除分配和u变量。
    •代码运动:另一个优化是将计算移动到它出现的循环之外。如果在循环周围就算产生相同的值,那么这个更改是正确的。
    •感应变量:许多循环有感应变量,变量在每次循环时都采用线性序列值。其中一些仅用于计数迭代,并且它们通常可以被消减,从而减少环绕循环所需的时间。
    •数据流分析:在程序中数据流分析模式给每个点定义了一个值。程序的声明语句可以传递将语句之前的值与之后的值相关联的函数。有多个前驱的语句必须通过使用并运算符组合前驱的值来定义其值。
    •基本块的数据流分析:由于块内数据流的传播通常十分简单,因此数据流方程通常为每个块设置两个变量,称为IN和OUT,表示数据块值分别在块的开头和结尾。块中语句的传递函数组合到一起为了获取作为一个整体的传递函数。

    相关文章

      网友评论

          本文标题:编译原理——基本块内数据流

          本文链接:https://www.haomeiwen.com/subject/gpbqpxtx.html