Title :
Code optimization as a side effect of instruction scheduling
Author_Institution :
Dept. of Comput. Sci., Pittsburgh Univ., PA, USA
Abstract :
An instruction scheduler utilizes code reordering techniques for generating schedules in which instructions can be issued without delays. In order to perform code reordering across branches, code motion is performed that hoists some instructions above branches and sinks others below branches. Following code reordering, compensation code must be introduced in order to preserve program semantics. In this paper, we demonstrate that several important code optimizations can be performed as a side-effect of generating compensation code. These optimizations include partial redundancy elimination, partial dead code elimination, elimination of redundant loads and elimination of dead stores. We demonstrate how existing data-flow frameworks for these optimizations can be extended for generating optimized compensation code
Keywords :
optimising compilers; processor scheduling; program control structures; redundancy; code hoisting; code motion; code optimization; code reordering techniques; code sinking; compensation code; data-flow frameworks; dead code removal; dead store elimination; instruction issuing; instruction scheduling; partial dead code elimination; partial redundancy elimination; program branches; program semantics; redundant load elimination; Computer science; Delay; Pipelines; Processor scheduling; Scheduling algorithm; VLIW;
Conference_Titel :
High-Performance Computing, 1997. Proceedings. Fourth International Conference on
Conference_Location :
Bangalore
Print_ISBN :
0-8186-8067-9
DOI :
10.1109/HIPC.1997.634517