美文网首页
编译原理——代码优化(调度和循环)

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

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

•优先拓扑顺序:基本块的数据依赖图通常是非循环的,并且有许多拓扑顺序与图一致。多种启发式方法来用来把给定的图选择优选的拓扑顺序,例如,首先选择最长关键路径的节点。
•列表调度:给定一个数据依赖图的优先顺序拓扑顺序,我们可以按照这个顺序来考虑节点。在最早的时钟周期调度每个节点,这与图形边缘、所有先前调度的节点的调度以及机器的资源约束所提供的时序约束一致。
•区间编码的运动:在一些情况下,可以将语句从其出现的基础块移到前驱或后驱。优点是可以有可能在新地址中并行执行指令,这些指令并不在原始位置。如果旧位置和新位置之间不存在支配关系,那么可能需要沿某些路径插入补偿码,以确保执行完全相同的指令序列,而不管控制流程如何。
•Do-All循环:Do-all循环在迭代中没有依赖关系,所以任何迭代都可以并行执行。
•Do-All循环的软件流水线:软件流水线技术是利用机器一次执行多条指令的技术。我们计划循环的迭代以较小的间隔开始,在迭代中放置非操作指令以避免机器资源迭代之间的冲突。其结果是循环可以快速执行前导码,尾声和微小的内部循环。
•Do-Across循环:大多数循环从每次迭代到之后迭代具有数据依赖性。这些被称为Do-Across循环。

相关文章

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

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

  • 编译原理四——代码优化

    代码优化 代码优化的含义是:对代码进行等价变换,使得变换后的代码具有更高的时间效率和空间效率。代码优化的目的是提高...

  • Unity学习—脚本优化Tips

    本文原地址:Unity学习—脚本优化Tips 官方文档参考 代码编译原理 Unity 首先将脚本编译为中间语言 C...

  • 编译原理——代码优化(数据依赖)

    •结构问题:优化的代码调度利用了现代化计算机体系结构的特征。这样的机器一般允许管道执行,其中几个指令同时处于不同的...

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

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

  • iOS的性能优化

    1、ipa包体积优化 1.1 编译配置优化:编译器代码层面优化Optimize Level;Bitcode(较难...

  • 优化Javascript代码性能

    优化JS代码性能 优化循环 我们来看一段段代码 这段代码循环footballTeam中的members数组,然后打...

  • 编译原理一

    编译原理 正规式或NFA到DFA最小化 四元式DAG图的优化,根据要求写出优化结果翻译到目标代码 给你文法,给你句...

  • 程序编译和代码优化

    早期(编译期)优化 java泛型 在java中,泛型方法在编译之后,生成的class文件里面保存的是原生类型。 晚...

  • Flutter 前端编译器编译流程分析

    1. 前端编译器和后端编译器的区别 编译流程粗略分为词法分析、语法分析、类型检查、中间代码生成、代码优化、目标代码...

网友评论

      本文标题:编译原理——代码优化(调度和循环)

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