This Article 
 Bibliographic References 
 Add to: 
Compiling Real-Time Programs With Timing Constraint Refinement and Structural Code Motion
May 1995 (vol. 21 no. 5)
pp. 389-404
We present a programming language called TCEL (Time-Constrained Event Language), whose semantics are based on time-constrained relationships between observable events. Such a semantics infers only those timing constraints necessary to achieve real-time correctness, without overconstraining 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 representadon. Then an instruction-scheduling algorithm rearranges selected unobservable operations and synthesizes tasks guaranteed to respect the original event-based constraints.

[1] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, Principles, Techniques and Tools.New York: Addison-Wesley, 1985.
[2] A. Aiken and A. Nicolau,“A development environment for horizontal microcode,” IEEE Transactions on Software Engineering, vol. 14, no. 5, pp. 584-594, May 1988.
[3] J.D. Choi,R. Cytron,, and J. Ferrante,“On the efficient engineering of ambitious program analysis,” IEEE Trans. Software Engineering, vol. 20, no. 2, pp. 105-114, Feb. 1994.
[4] R. Cytron, J. Ferrante, B.K. Rosen, M.N. Wegman, and F.K. Zadeck, "Efficiently Computing Static Single Assignment Form and the Control Dependence Graph," ACM Trans. Programming Languages and Systems, Oct. 1991.
[5] B. Dasarathy,“Timing constraints of real-time systems: Constructs forexpressing them, method for validating them,” IEEE Trans. Software Engineering, vol. 11, no. 1, pp. 80-86, Jan. 1985.
[6] K. Ebcioglu and A. Nicolau,“A global resource-constrained parallelization technique,” Proc. ACM SIGARCH Int’l Conf. Supercomputing, June 1989.
[7] J. Ferrante,K.J. Ottenstein,, and J.D. Warren,“The program dependence graph and its use in optimization,” ACM Trans. Programming Languages and Systems, vol. 9, no. 3, pp. 319-349, June 1987.
[8] J.A. Fisher,“Trace scheduling: A technique for global microcode compaction,” IEEE Trans. on Computers, vol. 30, pp. 478-490, July 1981.
[9] M.R. Garey and D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness.New York: W.H. Freeman, 1979.
[10] R. Gerber and S. Hong,“Semantics-based compiler transformations for enhancedschedulability,” Proc. of IEEE Real-Time Systems Symp., pp. 232-242.Los Alamitos, Calif.: IEEE CS Press, December 1993.
[11] P. Gopinath and R. Gupta, "Applying Compiler Techniques to Scheduling in Real-time Systems," Proc. 11th IEEE Real-Time Systems Symp., pp. 247-256,Orlando, Fla., Dec. 1990.
[12] M.G. Harmon, T.P. Baker, and D.B. Whalley, “A Retargetable Technique for Predicting Execution Time,” Proc. 11th IEEE Real-Time Systems Symp., pp. 68-77, Dec. 1992.
[13] P. Havlak, “Interprocedural Symbolic Analysis,” PhD thesis, Dept. of Computer Science, Rice Univ., 1994.
[14] S. Hong and R. Gerber, "Scheduling with Compiler Transformations: The TCEL Approach," Proc. 10th IEEE Workshop Real-Time Operating Systems and Software, pp. 80-84, May 1993.
[15] Y. Ishikawa,H. Tokuda,, and C.W. Mercer,“Object-oriented real-timelanguage design: Constructs for timing constraints,” Proc. OOPSLA 90, pp. 289-298, Oct. 1990.
[16] F. Jahanian and A. K.-L. Mok,“Safety analysis of timing properties in real-time systems,”IEEE Trans. Software Eng., vol. SE-12, pp. 890–904, Sept. 1986.
[17] K.B. Kenny and K.J. Lin, “Building Flexible Real-Time Systems Using the Flex Language,” Computer, pp. 70–78, May 1991.
[18] I. Lee,P. Bremond-Gregoire,, and R. Gerber,“A process algebraic approachto the specification and analysis of resource-bound real-time systems,” IEEE Proc., vol. 82, no. 1, Jan. 1994.
[19] I. Lee and V. Gehlot,“Language constructs for real-time programming,” Proc. IEEE Real-Time Systems Symp., pp. 57-66, 1985.
[20] S. Lim et al., "An Accurate Worst Case Timing Analysis Technique for RISC Processors," Proc. 15th IEEE Real-Time Systems Symp., pp. 97-108,San Juan, Puerto Rico, Dec. 1994.
[21] K.J. Lin and S. Natarajan, “Expressing and Maintaining Timing Constraints in Flex,” Proc. Ninth IEEE Real-Time Systems Symp., pp. 96–105, Dec. 1988.
[22] T. Marlowe and S. Masticola, "Safe Optimization for Hard Real-Time Programming," Proc. Second Int'l Conf. Systems Integration, special session on real-time programming, pp. 438-446, June 1992.
[23] M. Merritt, F. Modugno, and M.R. Tuttle, ”Time-Constrained Automata,” Lecture Notes in Computer Science, vol. 527, pp. 408-423, 1991.
[24] V. Nirkhe., “Application of partial evaluation to hard real-timeprogramming,” PhD thesis, Dept. of Computer Science, Univ. of Maryland atCollege Park, May 1992.
[25] W. Pugh and D. Wonnacott, “Eliminating False Data Dependences Using the Omega Test,” Proc. Programming Languages Design and Implementation, June 1992.
[26] M.D. Smith, M.A. Horowitz, and M.S. Lam, "Efficient Superscalar Performance Through Boosting," Proc. Fifth Int'l Conf. Architectural Support for Programming Languages and Operating Systems, pp. 248-259,Boston, Oct. 1992.
[27] V. Wolfe,S. Davidson,, and I. Lee,“RTC: Language support for real-timeconcurrency,” Proc. IEEE Real-Time Systems Symp., pp. 43-52, Dec. 1991.
[28] N. Zhang,A. Burns,, and M. Nicholson,“Pipelined processors and worst-case execution times,” Real-Time Systems J., vol. 5, no. 4, pp. 319-343, Oct. 1993.

Index Terms:
Real-time, programming languages, compiler optimization, code scheduling, static single assignment, gated single assignment, timing analysis, trace scheduling, code motion.
Richard Gerber, Seongsoo Hong, "Compiling Real-Time Programs With Timing Constraint Refinement and Structural Code Motion," IEEE Transactions on Software Engineering, vol. 21, no. 5, pp. 389-404, May 1995, doi:10.1109/32.387469
Usage of this product signifies your acceptance of the Terms of Use.