美文网首页
编译原理——循环和迭代

编译原理——循环和迭代

作者: 牛程程 | 来源:发表于2017-11-12 23:07 被阅读0次

•do-across循环的数据依赖图:为了表示do-across循环的指令之​​间的相关性,需要用一对值来标记边缘:所需的延迟(如代表基本块的图)和具有依赖性的两条指令之间的迭代次数。
•循环列表调度:要计划一个循环,我们必须为所有迭代选择一个调度,并选择连续迭代开始的启动间隔。该算法涉及通过找到两个节点之间最长非循环路径的长度来推导循环中各种指令相对调度的约束。这些长度以起始间隔作为参数,因此要在起始间隔上设置下限。
•数组中的并行性和局部性。基于并行性和局部性的最有优化空间的部分来自访问数组的循环。这些循环往往对数组元素的访问具有有限的依赖性,并且倾向于以一种规则的模式访问数组,并允许高效地使用缓存以获得良好的局部性。
•仿射访问。几乎所有用于并行和局部优化的理论和技术都假设对数组的访问是仿射的:数组索引的表达式是循环索引的线性函数。
•执行空间。具有d个嵌套循环的循环嵌套定义了d维迭代空间。空间中的点是循环索引在执行循环嵌套期间可以假设值的d元组。在仿射情况下,每个循环索引的限制是外环索引的线性函数,所以迭代空间是一个多面体。
•Fourier - Motzkin消除。迭代空间的一个关键操作是对定义迭代空间的循环重新排序。这样做需要将多面体迭代空间投影到其维的子集上。 Fourier-Motzkin算法通过限制本身之间的不等式来替代给定变量的上限和下限。

相关文章

  • 编译原理——循环和迭代

    •do-across循环的数据依赖图:为了表示do-across循环的指令之​​间的相关性,需要用一对值来标记边缘...

  • 循环和迭代

    如何遍历一个对象的所有属性 方法1 for in 循环对象的所有枚举属性,调用hasOwnProperty来忽略继...

  • 【控制流】26、迭代循环(for)

    目录一、什么是迭代循环二、range函数三、跳出和继续 一、什么是迭代循环 迭代循环语句Python语言中的for...

  • 编译原理——代码优化(调度和循环)

    •优先拓扑顺序:基本块的数据依赖图通常是非循环的,并且有许多拓扑顺序与图一致。多种启发式方法来用来把给定的图选择优...

  • EXCEL动一下公式结果全变0

    回答:迭代计算没开。 迭代计算 和迭代结算有关的一个概念 - 循环引用 一、循环引用 循环引用,一个单元格内的公式...

  • Swift 5.1 (5) - 控制流

    控制流 For-In循环 使用for-in循环迭代数组 使用for-in循环迭代字典 使用for-in循环迭代数值...

  • 第十四章习题

    1.for循环和迭代器之间有什么关系? for循环会使用迭代协议来遍历迭代的对象中的每一个项。for循环会在每次迭...

  • Go语言学习笔记06.流程控制

    分支结构 循环结构 for循环 range迭代 break和continue goto

  • kotlin 中的 "for" 循环和迭代m

    文章目录场景"for" 循环迭代map总结 场景 kotlin 中的 "for" 循环和迭代 map 与我们熟知的...

  • 编译原理

    编译原理 标签(空格分隔): 编译原理 编译和解释 编译 整个程序全部翻译结束之后,程序才能开始运行;编译和运行是...

网友评论

      本文标题:编译原理——循环和迭代

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