Compiling Real-Time Programs with Timing Constraint Refinement and Structural Code Motion
Abstract
We present a programming language called TCEL (Time-Constrained Event
Language), whose semantics is based on time-constrained
relationships between observable events. Such a semantics infers only
those timing constraints necessary to achieve real-time correctness,
without over-constraining the system. Moreover, an optimizing compiler
can exploit this looser semantics to help tune the code, so that its
worst-case execution time is consistent with its real-time requirements.
In this paper we describe such a transformation system, which works
in two phases. First the TCEL source code is translated into
an intermediate representation. Then an instruction-scheduling
algorithm rearranges selected unobservable operations, and synthesizes
tasks guaranteed to respect the original event-based constraints.
(Also cross-referenced as UMIACS-TR-94-90)