Abstract
Anti dependences (write-after-read dependences) constrain the reordering of instructions and limit the effectiveness of instruction scheduling and software pipelining techniques for superscalar and VLIW processors. Repairing solves this problem: If the definition of a variable is moved before a previous use of that variable, compiler-generated repair code reconstructs the value that the definition destroyed. Repairing features several potential advantages over register renaming, another technique for removing anti dependences: less register pressure, less loop unrolling and fewer move instructions.
Chapter PDF
Similar content being viewed by others
Key words
References
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 159–170, 1994.
Preston Briggs, Keith D. Cooper, and Linda Torczon. Rematerialization. In SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 311–321, 1992.
Gregory J. Chaitin, Marc A. Auslander, Ashok K. Chandra, John Cocke, Martin E. Hopkins, and Peter W. Markstein. Register allocation via coloring. Computer Languages, 6(1):45–57, 1981. Reprinted in [Sta90].
M. Anton Ertl and Andreas Krall. Instruction scheduling for complex pipelines. In Compiler Construction (CC'92), pages 207–218, Paderborn, 1992. Springer LNCS 641.
M. Anton Ertl and Andreas Krall. Delayed exceptions — speculative execution of trapping instructions. In Compiler Construction (CC '94), pages 158–171, Edinburgh, April 1994. Springer LNCS 786.
John R. Ellis. Bulldog: A Compiler for VLIW Architectures. MIT Press, 1985.
Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, 30(7):478–490, July 1981.
Phillip B. Gibbons and Steve S. Muchnick. Efficient instruction scheduling for a pipelined architecture. In SIGPLAN '86 Symposium on Compiler Construction, pages 11–16, 1986.
John Hennessy and Thomas Gross. Postpass code optimization of pipeline constraints. ACM Transactions on Programming Languages and Systems, 5(3):422–448, July 1983.
Jens Knoop, Oliver Rüthing, and Bernhard Steffen. Partial dead code elimination. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 147–158, 1994.
Monica Lam. Software pipelining: An effective scheduling technique for VLIW machines. In SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 318–328, 1988.
David Landskov, Scott Davidson, Bruce Shriver, and Pattrick W. Mallet. Local microcode compaction techniques. ACM Computing Surveys, 12(3):261–294, September 1980.
Toshio Nakatani and Kemal Ebcioğlu. “Combining” as a compilation technique for VLIW architectures. In 22nd Annual International Workshop on Microprogramming and Microarchitecture (MICRO-22), pages 43–55, 1989.
Yale N. Patt, Wen-mei Hwu, and Michael Shebanow. HPS, a new microarchitecture: Rationale and introduction. In The 18nd Annual Workshop on Microprogramming (MICRO-18), pages 103–108, 1985.
David A. Padua and Michael J. Wolfe. Advanced compiler optimizations for supercomputers. Communications of the ACM, 29(12):1184–1201, December 1986.
B. Ramakrishna Rau. Iterative modulo scheduling: An algorithm for software pipelining. In International Symposium on Microarchitecture (MICRO-27), pages 63–74, 1994.
B. R. Rau and C. D. Glaeser. Some scheduling techgniques and an easily schedulable horizontal architecture for high performance scientific computing. In 14th Annual Microprogramming Workshop (MICRO-14), pages 183–198, 1981.
Gurindar S. Sohi. Instruction issue logic for high-performance, interruptable, multiple functional unit, pipelined processors. IEEE Transactions on Computers, 39(3):349–359, March 1990.
William Stallings, editor. Reduced Instruction Set Computers. IEEE Computer Society Press, second edition, 1990.
J. E. Thornton. Parallel operation in Control Data 6600. In AFIPS Fall Joint Computer Conference, pages 33–40, 1964.
R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development, 11(1):25–33, 1967.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ertl, M.A., Krall, A. (1996). Removing anti dependences by repairing. In: Gyimóthy, T. (eds) Compiler Construction. CC 1996. Lecture Notes in Computer Science, vol 1060. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61053-7_51
Download citation
DOI: https://doi.org/10.1007/3-540-61053-7_51
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61053-3
Online ISBN: 978-3-540-49939-8
eBook Packages: Springer Book Archive