probabilistic source-level optimisation of embedded programs
Efficient implementation of DSP applications is critical for many embedded systems. Optimising C compilers for embedded processors largely focus on code generation and instruction scheduling which, with their growing maturity, are providing diminishing returns. This paper empirically evaluates another approach, namely source-level transformations and the probabilistic feedback-driven search for "good" transformation sequences within a large optimisation space. This novel approach combines two selection methods: one based on exploring the optimisation space, the other focused on localised search of good areas. This technique was applied to the UTDSP benchmark suite on two digital signal and multimedia processors (Analog Devices TigerSHARC TS-101, Philips TriMedia TM-1100) and an embedded processor derived from a popular general-purpose processor architecture (Intel Celeron 400). On average, our approach gave a factor of 1.71 times improvement across all platforms equivalent to an average 41\% reduction in execution time, outperforming existing approaches. In certain cases a speedup of up to ? 7 was found for individual benchmarks.
optimisation embedding program efficiency implementation applications critic embedded systems compilation embedded processors processor code generation general instruction scheduling paper search sequence space select method exploration benchmark digitize signaling multimedia timing analog device architecture factor platform reduction speedup iterative compilation feedback-directed optimization digital signal processing feedback adaptive compilation source-level optimization