LLVM API Documentation
#include "llvm/CodeGen/MachineTraceMetrics.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SparseSet.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Target/TargetSubtargetInfo.h"
Go to the source code of this file.
#define DEBUG_TYPE "machine-trace-metrics" |
Definition at line 28 of file MachineTraceMetrics.cpp.
typedef DenseMap<const MachineInstr *, unsigned> MIHeightMap |
Definition at line 923 of file MachineTraceMetrics.cpp.
static bool getDataDeps | ( | const MachineInstr * | UseMI, |
SmallVectorImpl< DataDep > & | Deps, | ||
const MachineRegisterInfo * | MRI | ||
) | [static] |
Definition at line 635 of file MachineTraceMetrics.cpp.
References llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperandIteratorBase::isValid(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
static void getPHIDeps | ( | const MachineInstr * | UseMI, |
SmallVectorImpl< DataDep > & | Deps, | ||
const MachineBasicBlock * | Pred, | ||
const MachineRegisterInfo * | MRI | ||
) | [static] |
Definition at line 659 of file MachineTraceMetrics.cpp.
References llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineInstr::isPHI(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by llvm::MachineTraceMetrics::Trace::getPHIDepth().
INITIALIZE_PASS_BEGIN | ( | MachineTraceMetrics | , |
"machine-trace-metrics" | , | ||
"Machine Trace Metrics" | , | ||
false | , | ||
true | |||
) |
static bool isExitingLoop | ( | const MachineLoop * | From, |
const MachineLoop * | To | ||
) | [static] |
Definition at line 294 of file MachineTraceMetrics.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains().
Referenced by llvm::po_iterator_storage< LoopBounds, true >::insertEdge().
static bool pushDepHeight | ( | const DataDep & | Dep, |
const MachineInstr * | UseMI, | ||
unsigned | UseHeight, | ||
MIHeightMap & | Heights, | ||
const TargetSchedModel & | SchedModel, | ||
const TargetInstrInfo * | TII | ||
) | [static] |
Definition at line 927 of file MachineTraceMetrics.cpp.
References llvm::TargetSchedModel::computeOperandLatency(), I, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::insert().
static void updatePhysDepsDownwards | ( | const MachineInstr * | UseMI, |
SmallVectorImpl< DataDep > & | Deps, | ||
SparseSet< LiveRegUnit > & | RegUnits, | ||
const TargetRegisterInfo * | TRI | ||
) | [static] |
Definition at line 695 of file MachineTraceMetrics.cpp.
References llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::end(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::erase(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::find(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), I, llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperandIteratorBase::isValid(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
static unsigned updatePhysDepsUpwards | ( | const MachineInstr * | MI, |
unsigned | Height, | ||
SparseSet< LiveRegUnit > & | RegUnits, | ||
const TargetSchedModel & | SchedModel, | ||
const TargetInstrInfo * | TII, | ||
const TargetRegisterInfo * | TRI | ||
) | [static] |
Definition at line 870 of file MachineTraceMetrics.cpp.
References llvm::TargetSchedModel::computeOperandLatency(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::end(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::erase(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::find(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), I, llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineInstr::isTransient(), llvm::MachineOperandIteratorBase::isValid(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::AArch64CC::MI, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Definition at line 38 of file MachineTraceMetrics.cpp.
machine trace metrics |
Definition at line 38 of file MachineTraceMetrics.cpp.
Definition at line 38 of file MachineTraceMetrics.cpp.
Referenced by ApproximateLoopSize().