2000 · 37 citations · 8 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureSchedulingControl-flow AnalysisData-flow AnalysisInstruction SchedulingInstruction Set ArchitectureInstruction-level ParallelismMicroarchitecture DesignBasic Block SchedulingCode MotionCompensation CodeData Dependence AnalysisGlobal SchedulingMicroarchitectureParallelism ExtractionRegion Scheduling
The IA-64 architecture is rich with features that enable aggressive exploitation of instruction-level parallelism. Features such as speculation, predication, multiway branches and others provide compilers with new opportunities for the extraction of parallelism in programs. Code scheduling is a central component in any compiler for the IA-64 architecture. This paper describes the implementation of the global code scheduler (GCS) in Intel's compiler for the IA-64 architecture. GCS schedules code over acyclic regions of control flow. There is a tight coupling between the formation and scheduling of regions. GCS employs a new path based data dependence representation that combines control flow and data dependence information to make data analysis easy and accurate. This paper provides details of this representation. The scheduler uses a novel instruction scheduling technique called Wavefront scheduling. The concepts of wavefront scheduling and deferred compensation are explaine...
8
Global instruction scheduling for superscalar machines
David Bernstein, Michael Rodeh · 1991 · 183 citations · Full text