LLVM
8.0.1
|
SI Machine Scheduler interface. More...
#include "SIMachineScheduler.h"
#include "AMDGPU.h"
#include "SIInstrInfo.h"
#include "SIRegisterInfo.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/LiveInterval.h"
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineScheduler.h"
#include "llvm/CodeGen/RegisterPressure.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <map>
#include <set>
#include <utility>
#include <vector>
Go to the source code of this file.
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
llvm::SISched | |
Macros | |
#define | DEBUG_TYPE "machine-scheduler" |
Functions | |
static const char * | getReasonStr (SIScheduleCandReason Reason) |
static bool | llvm::SISched::tryLess (int TryVal, int CandVal, SISchedulerCandidate &TryCand, SISchedulerCandidate &Cand, SIScheduleCandReason Reason) |
static bool | llvm::SISched::tryGreater (int TryVal, int CandVal, SISchedulerCandidate &TryCand, SISchedulerCandidate &Cand, SIScheduleCandReason Reason) |
static bool | isDefBetween (unsigned Reg, SlotIndex First, SlotIndex Last, const MachineRegisterInfo *MRI, const LiveIntervals *LIS) |
static bool | hasDataDependencyPred (const SUnit &SU, const SUnit &FromSU) |
static MachineBasicBlock::iterator | nextIfDebug (MachineBasicBlock::iterator I, MachineBasicBlock::const_iterator End) |
Non-const version. More... | |
SI Machine Scheduler interface.
Definition in file SIMachineScheduler.cpp.
#define DEBUG_TYPE "machine-scheduler" |
Definition at line 42 of file SIMachineScheduler.cpp.
|
static |
Definition at line 144 of file SIMachineScheduler.cpp.
References llvm::Depth, llvm::Latency, llvm_unreachable, llvm::NoCand, llvm::NodeOrder, llvm::RegUsage, and llvm::Successor.
Referenced by llvm::SIScheduleBlock::addUnit(), llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler(), and llvm::GenericSchedulerBase::traceCandidate().
Definition at line 671 of file SIMachineScheduler.cpp.
References assert(), llvm::SIScheduleDAGMI::BottomUpIndex2SU, llvm::SDep::Data, llvm::Data, llvm::dbgs(), llvm::SIScheduleBlock::finalizeUnits(), llvm::SUnit::getInstr(), llvm::ScheduleDAGTopologicalSort::GetSubGraph(), llvm::SDep::getSUnit(), llvm::SIScheduleDAGMI::GetTopo(), llvm::SDep::isCtrl(), llvm::SIInstrInfo::isEXP(), llvm::SIScheduleDAGMI::IsHighLatencySU, llvm::SIScheduleDAGMI::IsLowLatencySU, llvm::SDep::isWeak(), llvm::LatenciesAlonePlusConsecutive, llvm::LatenciesGrouped, LLVM_DEBUG, llvm::NoData, llvm::SUnit::NodeNum, llvm::SUnit::Preds, llvm::SIScheduleBlock::printDebug(), llvm::SIScheduleDAGMI::restoreSULinksLeft(), llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, and llvm::SIScheduleDAGMI::TopDownIndex2SU.
|
static |
Definition at line 309 of file SIMachineScheduler.cpp.
References llvm::RegPressureTracker::addLiveRegs(), llvm::MachineRegisterInfo::def_instr_begin(), llvm::MachineRegisterInfo::def_instr_end(), llvm::LiveIntervals::getInstructionIndex(), llvm::SlotIndex::getRegSlot(), llvm::MachineInstr::isDebugValue(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::RegisterPressure::MaxSetPressure, MI, MRI, and Reg.
|
static |
Non-const version.
Definition at line 1277 of file SIMachineScheduler.cpp.