This thesis describes work done in two areas of compilation support for superscalar processors; register allocation and instruction scheduling. Chapter 1 describes an approach to register allocation for superscalar processors that supports dynamic and speculative out-of-order execution of instructions and guarantees precise interrupts without expensive hardware for managing register usage and maintaining an in-order processor state. The approach is called extended register allocation, and is based on a graph-coloring paradigm for storage allocation first introduced by Chaitin in [2]. Chapter 2 presents a novel approach to performing aggressive instruction scheduling in the context of the superscalar IBM RS/6000 processor architecture[4, 5]....
Although instruction scheduling is an scNP-complete problem (27), many techniques have been develope...
It is increasingly accepted that superscalar processors can only achieve their full performance pote...
[[abstract]]Instruction scheduling and register allocation are two very important optimizations in m...
[[abstract]]This paper introduces a novel superscalar micro-architecture, called IAS-S, and its rela...
Effective global instruction scheduling techniques have become an important component in modern comp...
Modern superscalar architectures with dynamic scheduling and register renaming capabilities have int...
Two of the most important phases of code generation for instruction level parallel processors are re...
Modern computers have taken advantage of the instruction-level parallelism (ILP) available in progra...
Advances in VLSI technology will enable chips with over a billion transistors within the next decade...
Compiler technology plays an important role to enhance the performance of modern microprocessors. In...
This work examines the interaction of compiler scheduling techniques with processor features such as...
The Trimaran compiler infrastructure has been developed for supporting state of art research in comp...
Modern superscalar processors use wide instruction issue widths and out-of-order execution in order ...
Register allocation and instruction scheduling are two central compiler back-end problems that are c...
In order to achieve high performance, processor architecture has become more and more complicated. A...
Although instruction scheduling is an scNP-complete problem (27), many techniques have been develope...
It is increasingly accepted that superscalar processors can only achieve their full performance pote...
[[abstract]]Instruction scheduling and register allocation are two very important optimizations in m...
[[abstract]]This paper introduces a novel superscalar micro-architecture, called IAS-S, and its rela...
Effective global instruction scheduling techniques have become an important component in modern comp...
Modern superscalar architectures with dynamic scheduling and register renaming capabilities have int...
Two of the most important phases of code generation for instruction level parallel processors are re...
Modern computers have taken advantage of the instruction-level parallelism (ILP) available in progra...
Advances in VLSI technology will enable chips with over a billion transistors within the next decade...
Compiler technology plays an important role to enhance the performance of modern microprocessors. In...
This work examines the interaction of compiler scheduling techniques with processor features such as...
The Trimaran compiler infrastructure has been developed for supporting state of art research in comp...
Modern superscalar processors use wide instruction issue widths and out-of-order execution in order ...
Register allocation and instruction scheduling are two central compiler back-end problems that are c...
In order to achieve high performance, processor architecture has become more and more complicated. A...
Although instruction scheduling is an scNP-complete problem (27), many techniques have been develope...
It is increasingly accepted that superscalar processors can only achieve their full performance pote...
[[abstract]]Instruction scheduling and register allocation are two very important optimizations in m...