摘要
面向嵌入式系统的编译器,往往需要同时考虑目标代码的性能、大小和功耗等相互冲突的目标.ARM双指令集处理器,在具备通常的32位ARM指令集基础上,还支持一个缩减的16位Thumb指令集,因而为代码优化提供了多个目标之间折衷的机会.由于同一个程序的Thumb代码比相应的ARM代码执行更多的指令,因此虽然前者常比后者占用更少的存储空间,但消耗更多的运行时间.针对这种现象,文中建议一个混合演化算法,通过把程序的不同部分有选择地编译成ARM或Thumb指令集代码,使得可灵活地权衡目标代码大小和运行时间.文中的方法基于遗传算法和关键事件禁忌搜索相融合,后者用来局部搜索.指令选择以函数为单位,从对程序动态行...
- 单位