LLVM 20.0.0git
|
#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 > |
SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl template, specialized for MachineSSAUpdater. More... | |
class | llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator |
Iterator for PHI operands. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "machine-ssaupdater" |
Typedefs | |
using | AvailableValsTy = DenseMap< MachineBasicBlock *, Register > |
Functions | |
static AvailableValsTy & | getAvailableVals (void *AV) |
static Register | LookForIdenticalPHI (MachineBasicBlock *BB, SmallVectorImpl< std::pair< MachineBasicBlock *, Register > > &PredValues) |
static MachineInstrBuilder | InsertNewDef (unsigned Opcode, MachineBasicBlock *BB, MachineBasicBlock::iterator I, MachineRegisterInfo::VRegAttrs RegAttrs, 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. | |
static MachineBasicBlock * | findCorrespondingPred (const MachineInstr *MI, MachineOperand *U) |
#define DEBUG_TYPE "machine-ssaupdater" |
Definition at line 35 of file MachineSSAUpdater.cpp.
using AvailableValsTy = DenseMap<MachineBasicBlock *, Register> |
Definition at line 37 of file MachineSSAUpdater.cpp.
|
static |
Definition at line 217 of file MachineSSAUpdater.cpp.
References llvm_unreachable, and MI.
Referenced by llvm::MachineSSAUpdater::RewriteUse().
|
static |
Definition at line 39 of file MachineSSAUpdater.cpp.
Referenced by llvm::SSAUpdater::AddAvailableValue(), llvm::MachineSSAUpdater::AddAvailableValue(), llvm::SSAUpdater::FindValueForBlock(), llvm::SSAUpdater::HasValueForBlock(), llvm::MachineSSAUpdater::HasValueForBlock(), llvm::MachineSSAUpdater::Initialize(), and llvm::SSAUpdater::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 114 of file MachineSSAUpdater.cpp.
References llvm::BuildMI(), I, MRI, and TII.
Referenced by llvm::SSAUpdaterTraits< MachineSSAUpdater >::CreateEmptyPHI(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::GetPoisonVal(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), and llvm::MachineSSAUpdater::RewriteUse().
|
static |
Definition at line 82 of file MachineSSAUpdater.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::end(), I, and Same.
Referenced by llvm::MachineSSAUpdater::GetValueInMiddleOfBlock().