当前位置: X-MOL 学术J. Sign. Process. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Evolutionary Algorithms for Instruction Scheduling, Operation Merging, and Register Allocation in VLIW Compilers
Journal of Signal Processing Systems ( IF 1.8 ) Pub Date : 2020-01-17 , DOI: 10.1007/s11265-019-01493-2
Florian Giesemann , Lukas Gerlach , Guillermo Payá-Vayá

Code generation for VLIW processors includes several optimization problems like code optimization, instruction scheduling, and register allocation. The high complexity of these problems usually does not allow the computation of the optimal solution. Instead, optimization techniques, e.g., based on heuristics, are used to find acceptable solutions in a reasonable time. List scheduling is a well known heuristic-based microcode compaction method, that bases its scheduling decisions on weights derived from dependency analysis of the input program. Additional information and methods have to be used in order to reach better code compaction. Also, more sophisticated code optimization and register allocation support better code compaction. In this paper, evolutionary algorithms are used as dynamic heuristics in code generation, which allows dynamic adaption to the given input program and target processor configuration. Three evolutionary algorithms for operation merging, instruction scheduling, and register allocation are presented and evaluated on an exemplary image processing application, which shows different processing characteristics in the subroutines. They outperform code generation based on static heuristics and allow compilation for restricted target architectures that cannot be handled by the static heuristics.



中文翻译:

VLIW编译器中用于指令调度,操作合并和寄存器分配的进化算法

VLIW处理器的代码生成包括一些优化问题,例如代码优化,指令调度和寄存器分配。这些问题的高度复杂性通常不允许最优解的计算。取而代之的是,例如基于启发式的优化技术被用来在合理的时间内找到可接受的解决方案。列表调度是一种众所周知的基于启发式的微代码压缩方法,其调度决策基于从输入程序的依赖性分析得出的权重。为了获得更好的代码压缩,必须使用其他信息和方法。而且,更复杂的代码优化和寄存器分配支持更好的代码压缩。本文将进化算法用作代码生成中的动态启发式算法,它允许动态适应给定的输入程序和目标处理器配置。在示例性图像处理应用程序上介绍并评估了用于操作合并,指令调度和寄存器分配的三种进化算法,这些算法在子例程中显示了不同的处理特性。它们优于基于静态启发式方法的代码生成,并允许针对静态启发式方法无法处理的受限目标体系结构进行编译。

更新日期:2020-01-17
down
wechat
bug