In:
ACM Transactions on Embedded Computing Systems, Association for Computing Machinery (ACM), Vol. 10, No. 4 ( 2011-11), p. 1-25
Abstract:
Integrating register allocation and software pipelining of loops is an active research area. We focus on techniques that precondition the dependence graph before software pipelining in order to ensure that no register spill instructions are inserted by the register allocator in the software pipelined loop. If spilling is not necessary for the input code, preconditioning techniques insert dependence arcs so that the maximum register pressure MAXLIVE achieved by any loop schedule is below the number of available registers, without hurting the initiation interval if possible. When a solution exists, a spill-free software pipeline is guaranteed to exist. Existing preconditioning techniques consider one register type (register class) at a time [Deschinkel and Touati 2008]. In this article, we extend preconditioning techniques so that multiple register types are considered simultaneously. First, we generalize the existing theory of register pressure minimization for cyclic scheduling. Second, we implement our method inside the production compiler of the ST2xx VLIW family, and we demonstrate its efficiency on industry benchmarks (FFMPEG, MEDIABENCH, SPEC2000, SPEC2006). We demonstrate a high spill reduction rate without a significant initiation interval loss.
Type of Medium:
Online Resource
ISSN:
1539-9087
,
1558-3465
DOI:
10.1145/2043662.2043671
Language:
English
Publisher:
Association for Computing Machinery (ACM)
Publication Date:
2011
detail.hit.zdb_id:
2096332-4
Permalink