Book Image

Getting started with LLVM core libraries

Book Image

Getting started with LLVM core libraries

Overview of this book

Table of Contents (17 chapters)
Getting Started with LLVM Core Libraries
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Scheduler


After instruction selection, the SelectionDAG structure has nodes representing physical instructions—those directly supported by the processor. The next stage comprises a pre-register allocation scheduler working on SelectionDAG nodes (SDNodes). There are a few different schedulers to choose from and each one of them is a subclass of ScheduleDAGSDNodes (see the file <llvm_source>/ lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp). The scheduler type can be selected in the llc tool by using the -pre-RA-sched=<scheduler> option. The possible values for <scheduler> are the following:

  • list-ilp, list-hybrid, source, and list-burr: These options refer to list scheduling algorithms implemented by the ScheduleDAGRRList class (see the file <llvm_source>/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp)

  • fast: The ScheduleDAGFast class (in <llvm_source>/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp) implements a suboptimal but fast scheduler

  • vliw-td: A VLIW-specific...