LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions | Variables
ScheduleDAGFast.cpp File Reference
#include "llvm/CodeGen/SchedulerRegistry.h"
#include "InstrEmitter.h"
#include "ScheduleDAGSDNodes.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetRegisterInfo.h"
Include dependency graph for ScheduleDAGFast.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "pre-RA-sched"
 

Functions

 STATISTIC (NumUnfolds,"Number of nodes unfolded")
 
 STATISTIC (NumDups,"Number of duplicated nodes")
 
 STATISTIC (NumPRCopies,"Number of physical copies")
 
static EVT getPhysicalRegisterVT (SDNode *N, unsigned Reg, const TargetInstrInfo *TII)
 
static bool CheckForLiveRegDef (SUnit *SU, unsigned Reg, std::vector< SUnit * > &LiveRegDefs, SmallSet< unsigned, 4 > &RegAdded, SmallVectorImpl< unsigned > &LRegs, const TargetRegisterInfo *TRI)
 
static SDNodefindGluedUser (SDNode *N)
 

Variables

static RegisterScheduler fastDAGScheduler ("fast","Fast suboptimal list scheduling", createFastDAGScheduler)
 
static RegisterScheduler linearizeDAGScheduler ("linearize","Linearize DAG, no scheduling", createDAGLinearizer)
 

Macro Definition Documentation

#define DEBUG_TYPE   "pre-RA-sched"

Definition at line 14 of file ScheduleDAGFast.cpp.

Function Documentation

static bool CheckForLiveRegDef ( SUnit SU,
unsigned  Reg,
std::vector< SUnit * > &  LiveRegDefs,
SmallSet< unsigned, 4 > &  RegAdded,
SmallVectorImpl< unsigned > &  LRegs,
const TargetRegisterInfo TRI 
)
static

CheckForLiveRegDef - Return true and update live register vector if the specified register def of the specified SUnit clobbers any "live" registers.

Definition at line 448 of file ScheduleDAGFast.cpp.

References llvm::SmallSet< T, N, C >::insert(), llvm::MCRegAliasIterator::isValid(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

static SDNode* findGluedUser ( SDNode N)
static

findGluedUser - Find the representative use of a glue value by walking the use chain.

Definition at line 710 of file ScheduleDAGFast.cpp.

References llvm::SDNode::getGluedUser(), and N.

static EVT getPhysicalRegisterVT ( SDNode N,
unsigned  Reg,
const TargetInstrInfo TII 
)
static

getPhysicalRegisterVT - Returns the ValueType of the physical register definition of the specified node. FIXME: Move to SelectionDAG?

Definition at line 433 of file ScheduleDAGFast.cpp.

References llvm::MCInstrInfo::get(), llvm::MCInstrDesc::getImplicitDefs(), llvm::SDNode::getMachineOpcode(), llvm::MCInstrDesc::getNumDefs(), llvm::SDNode::getValueType(), and llvm::MCInstrDesc::ImplicitDefs.

STATISTIC ( NumUnfolds  ,
"Number of nodes unfolded"   
)
STATISTIC ( NumDups  ,
"Number of duplicated nodes"   
)
STATISTIC ( NumPRCopies  ,
"Number of physical copies"   
)

Variable Documentation

RegisterScheduler fastDAGScheduler("fast","Fast suboptimal list scheduling", createFastDAGScheduler)
static
RegisterScheduler linearizeDAGScheduler("linearize","Linearize DAG, no scheduling", createDAGLinearizer)
static