WCET Code Positioning
- 6 April 2005
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Some processors incur a pipeline delay whenever an instruction transfers control to a target that is not the next sequential instruction. Compiler writers attempt to reduce these delays by positioning the basic blocks within a function to minimize the number of unconditional jumps and taken conditional branches that occur. Such a code positioning algorithm is traditionally driven by profile data representing typical program executions where pairs of blocks are placed in contiguous order when the transitions between these blocks occur most frequently. In this paper we describe an approach to perform code positioning without profiling in an attempt to reduce WCET instead of ACET. Our compiler interacts with a timing analyzer to obtain WCET path information to guide the block positioning. The results show over a 9% average reduction in WCET is achieved after code positioning is performed and our greedy WCET code positioning algorithm always achieves optimal results for our benchmark suite.Keywords
This publication has 23 references indexed in Scilit:
- Tighter timing predictions by automatic detection and exploitation of value-dependent constraintsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Bounding loop iterations for timing analysisPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Timing analysis for data caches and set-associative cachesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Integrating the timing analysis of pipelining and instruction cachingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Automatic detection and exploitation of branch constraints for timing analysisIEEE Transactions on Software Engineering, 2002
- Supporting Timing Analysis by Automatic Bounding of Loop IterationsReal-Time Systems, 2000
- Timing Analysis for Data and Wrap-Around Fill CachesReal-Time Systems, 1999
- Bounding pipeline and instruction cache performanceIEEE Transactions on Computers, 1999
- Bounding worst-case instruction cache performancePublished by Institute of Electrical and Electronics Engineers (IEEE) ,1994
- Compiling real-time programs into schedulable codePublished by Association for Computing Machinery (ACM) ,1993