LLVM  10.0.0svn
Macros | Functions | Variables
PostRASchedulerList.cpp File Reference
#include "AggressiveAntiDepBreaker.h"
#include "AntiDepBreaker.h"
#include "CriticalAntiDepBreaker.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/CodeGen/LatencyPriorityQueue.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/RegisterClassInfo.h"
#include "llvm/CodeGen/ScheduleDAGInstrs.h"
#include "llvm/CodeGen/ScheduleHazardRecognizer.h"
#include "llvm/CodeGen/SchedulerRegistry.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for PostRASchedulerList.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "post-RA-sched"
 

Functions

 STATISTIC (NumNoops, "Number of noops inserted")
 
 STATISTIC (NumStalls, "Number of pipeline stalls")
 
 STATISTIC (NumFixedAnti, "Number of fixed anti-dependencies")
 
 INITIALIZE_PASS (PostRAScheduler, DEBUG_TYPE, "Post RA top-down list latency scheduler", false, false) SchedulePostRATDList
 

Variables

static cl::opt< boolEnablePostRAScheduler ("post-RA-scheduler", cl::desc("Enable scheduling after register allocation"), cl::init(false), cl::Hidden)
 
static cl::opt< std::string > EnableAntiDepBreaking ("break-anti-dependencies", cl::desc("Break post-RA scheduling anti-dependencies: " "\ritical\ \ll\ or \one\), cl::init("none"), cl::Hidden)
 
static cl::opt< int > DebugDiv ("postra-sched-debugdiv", cl::desc("Debug control MBBs that are scheduled"), cl::init(0), cl::Hidden)
 
static cl::opt< int > DebugMod ("postra-sched-debugmod", cl::desc("Debug control MBBs that are scheduled"), cl::init(0), cl::Hidden)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "post-RA-sched"

Definition at line 47 of file PostRASchedulerList.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( PostRAScheduler  ,
DEBUG_TYPE  ,
"Post RA top-down list latency scheduler"  ,
false  ,
false   
)

Definition at line 202 of file PostRASchedulerList.cpp.

References assert(), llvm::sys::path::begin(), llvm::ScheduleDAG::clearDAG(), llvm::dbgs(), DebugDiv, DebugMod, llvm::dump(), llvm::numbers::e, E, EnableAntiDepBreaking, EnablePostRAScheduler, llvm::TargetSubtargetInfo::enablePostRAScheduler(), llvm::sys::path::end(), llvm::ScheduleDAGInstrs::enterRegion(), llvm::ScheduleDAGInstrs::exitRegion(), llvm::ScheduleDAGInstrs::finishBlock(), llvm::TargetSubtargetInfo::getAntiDepBreakMode(), llvm::MachineInstr::getBundleSize(), llvm::TargetSubtargetInfo::getCriticalPathRCs(), llvm::SUnit::getDepth(), getDepth(), llvm::MachineFunction::getFunction(), llvm::SUnit::getInstr(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetPassConfig::getOptLevel(), llvm::TargetSubtargetInfo::getOptLevelToEnablePostRAScheduler(), llvm::MachineFunction::getSubtarget(), llvm::SDep::getSUnit(), I, llvm::HexagonInstrInfo::insertNoop(), llvm::zlib::isAvailable(), llvm::MachineInstr::isBundle(), llvm::MachineInstr::isCall(), llvm::SUnit::isScheduled, llvm::HexagonInstrInfo::isSchedulingBoundary(), llvm::SDep::isWeak(), LLVM_DEBUG, LLVM_DUMP_METHOD, llvm_unreachable, MI, Mode, MRI, llvm::ScheduleHazardRecognizer::NoHazard, llvm::ScheduleHazardRecognizer::NoopHazard, llvm::SUnit::NumPredsLeft, P, llvm::printMBBReference(), Scheduler, llvm::SUnit::setDepthToAtLeast(), llvm::MachineBasicBlock::splice(), llvm::ARM_MB::ST, llvm::ScheduleDAGInstrs::startBlock(), llvm::SUnit::Succs, TII, and llvm::SUnit::WeakPredsLeft.

◆ STATISTIC() [1/3]

STATISTIC ( NumNoops  ,
"Number of noops inserted"   
)

◆ STATISTIC() [2/3]

STATISTIC ( NumStalls  ,
"Number of pipeline stalls"   
)

◆ STATISTIC() [3/3]

STATISTIC ( NumFixedAnti  ,
"Number of fixed anti-dependencies  
)

Variable Documentation

◆ DebugDiv

cl::opt<int> DebugDiv("postra-sched-debugdiv", cl::desc("Debug control MBBs that are scheduled"), cl::init(0), cl::Hidden)
static

Referenced by INITIALIZE_PASS().

◆ DebugMod

cl::opt<int> DebugMod("postra-sched-debugmod", cl::desc("Debug control MBBs that are scheduled"), cl::init(0), cl::Hidden)
static

Referenced by INITIALIZE_PASS().

◆ EnableAntiDepBreaking

cl::opt<std::string> EnableAntiDepBreaking("break-anti-dependencies", cl::desc("Break post-RA scheduling anti-dependencies: " "\critical\, \all\, or \none\"), cl::init("none"), cl::Hidden)
static

Referenced by INITIALIZE_PASS().

◆ EnablePostRAScheduler

cl::opt<bool> EnablePostRAScheduler("post-RA-scheduler", cl::desc("Enable scheduling after register allocation"), cl::init(false), cl::Hidden)
static

Referenced by INITIALIZE_PASS().