1 research outputs found

    Code Optimization as a Side Effect of Instruction Scheduling

    No full text
    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 - code hoisting, code sinking, code optimization, compensation code, redundancy elimination, dead code removal. 1 Introduction The task of an instruction scheduler ..
    corecore