LLVM API Documentation

Defines | 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.

Defines

#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)

Define Documentation

#define DEBUG_TYPE   "pre-RA-sched"

Definition at line 30 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 449 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 712 of file ScheduleDAGFast.cpp.

References llvm::SDNode::getGluedUser().

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 434 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]