首页> 外文会议>ACM SIGPLAN conference on Programming language design and implementation >Storage assignment optimizations to generate compact and efficient code on embedded DSPs
【24h】

Storage assignment optimizations to generate compact and efficient code on embedded DSPs

机译:优化存储分配以在嵌入式DSP上生成紧凑而高效的代码

获取原文

摘要

DSP architectures typically provide dedicated memory address generation units and indirect addressing modes with auto-increment and auto-decrement that subsume address arithmetic calculation. The heavy use of auto-increment and auto-decrement indirect addressing require DSP compilers to perform a careful placement of variables in storage to minimize address arithmetic instructions to generate compact and efficient DSP code. Liao et al. formulated the problem of storage assignment as the simple offset assignment problem (SOA) and the general offset assignment problem (GOA), and proposed heuristic solutions.The storage allocation of variables critically depends on the sequence of variable accesses. In this paper we present techniques to optimize the access sequence of variables by applying algebraic transformations (such as commutativity and associativity) on expression trees to obtain the least cost offset assignment. We develop a new formulation of this problem as the least cost access sequence problem (LCAS). Based on the proposed framework, we develop heuristic algorithms that determine empirically near-optimal solutions resulting in fewer address arithmetic instructions. We have implemented the proposed heuristic algorithms by extending the storage assignment optimization in the SPAM compiler back-end targeted for the TMS320C25 DSP. In the case of SOA, experimental results for programs from the DSPstone benchmark suite show an average improvement of 3.36% in static code size and an average relative speed-up of 7.28% over results obtained using existing SOA algorithms. The average code size reduction over code compiled with a naive storage assignment algorithm is 7.04%. The proposed framework has also been applied to the GOA problem and shows average code size reductions of 2.04% over results obtained using existing GOA algorithms, and average code size reductions of 10.84% over a naive GOA algorithm. Code size reduction and improvement in dynamic instruction counts could be valuable given limitedmemory and real-time response requirements placed on embedded systems.
机译:DSP体系结构通常提供专用的存储器地址生成单元和间接寻址模式,并具有自动递增和自动递减的功能,这些功能包括地址算术计算。自动递增和自动递减间接寻址的大量使用要求DSP编译器认真执行变量在存储中的放置,以最小化地址算术指令以生成紧凑而有效的DSP代码。廖等。将存储分配问题表述为简单偏移分配问题(SOA)和一般偏移分配问题(GOA),并提出启发式解决方案。变量的存储分配关键取决于变量访问的顺序。在本文中,我们介绍了通过在表达式树上应用代数变换(例如可交换性和关联性)来优化变量访问顺序的技术,以获得最小的成本偏移量分配。我们开发了这个问题的新表述,即最小成本访问序列问题(LCAS)。基于提出的框架,我们开发了启发式算法,可确定经验上接近最优的解决方案,从而减少地址运算指令的数量。通过扩展针对TMS320C25 DSP的SPAM编译器后端的存储分配优化,我们已经实现了建议的启发式算法。对于SOA,来自DSPstone基准套件的程序的实验结果表明,与使用现有SOA算法获得的结果相比,静态代码大小平均提高了3.36%,平均相对速度提高了7.28%。与使用天真的存储分配算法编译的代码相比,平均代码大小减少了7.04%。所提出的框架也已应用于GOA问题,与使用现有GOA算法获得的结果相比,平均代码大小减少了2.04%,而相对于朴素的GOA算法,平均代码大小减少了10.84%。鉴于对嵌入式系统的内存和实时响应要求有限,减少代码大小和提高动态指令数量可能是有价值的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号