LLVM
8.0.1
|
#include "llvm/CodeGen/MachineSSAUpdater.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/SSAUpdaterImpl.h"
#include <utility>
Go to the source code of this file.
Classes | |
class | llvm::SSAUpdaterTraits< MachineSSAUpdater > |
class | llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator |
Iterator for PHI operands. More... | |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
Macros | |
#define | DEBUG_TYPE "machine-ssaupdater" |
Typedefs | |
using | AvailableValsTy = DenseMap< MachineBasicBlock *, unsigned > |
Functions | |
static AvailableValsTy & | getAvailableVals (void *AV) |
static unsigned | LookForIdenticalPHI (MachineBasicBlock *BB, SmallVectorImpl< std::pair< MachineBasicBlock *, unsigned >> &PredValues) |
static MachineInstrBuilder | InsertNewDef (unsigned Opcode, MachineBasicBlock *BB, MachineBasicBlock::iterator I, const TargetRegisterClass *RC, MachineRegisterInfo *MRI, const TargetInstrInfo *TII) |
InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define a value of the given register class at the start of the specified basic block. More... | |
static MachineBasicBlock * | findCorrespondingPred (const MachineInstr *MI, MachineOperand *U) |
#define DEBUG_TYPE "machine-ssaupdater" |
Definition at line 36 of file MachineSSAUpdater.cpp.
using AvailableValsTy = DenseMap<MachineBasicBlock *, unsigned> |
Definition at line 38 of file MachineSSAUpdater.cpp.
|
static |
Definition at line 212 of file MachineSSAUpdater.cpp.
References llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), and llvm_unreachable.
Referenced by llvm::MachineSSAUpdater::RewriteUse().
|
static |
Definition at line 40 of file MachineSSAUpdater.cpp.
Referenced by llvm::MachineSSAUpdater::AddAvailableValue(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::GetPHIValue(), llvm::MachineSSAUpdater::HasValueForBlock(), and llvm::MachineSSAUpdater::Initialize().
|
static |
InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define a value of the given register class at the start of the specified basic block.
It returns the virtual register defined by the instruction.
Definition at line 117 of file MachineSSAUpdater.cpp.
References llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), and llvm::MCInstrInfo::get().
Referenced by llvm::SSAUpdaterTraits< MachineSSAUpdater >::CreateEmptyPHI(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::GetUndefVal(), and llvm::MachineSSAUpdater::GetValueInMiddleOfBlock().
|
static |
Definition at line 84 of file MachineSSAUpdater.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::end(), first, I, and second.
Referenced by llvm::MachineSSAUpdater::GetValueInMiddleOfBlock().