LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Typedefs | Functions
MachineSSAUpdater.cpp File Reference
#include "llvm/CodeGen/MachineSSAUpdater.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/Support/AlignOf.h"
#include "llvm/Support/Allocator.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/TargetMachine.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Transforms/Utils/SSAUpdaterImpl.h"
Include dependency graph for MachineSSAUpdater.cpp:

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
 List of target independent CodeGen pass IDs.
 

Typedefs

typedef DenseMap
< MachineBasicBlock
*, unsigned
AvailableValsTy
 

Functions

static AvailableValsTygetAvailableVals (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)
 
static MachineBasicBlockfindCorrespondingPred (const MachineInstr *MI, MachineOperand *U)
 

Typedef Documentation

Definition at line 32 of file MachineSSAUpdater.cpp.

Function Documentation

static MachineBasicBlock* findCorrespondingPred ( const MachineInstr MI,
MachineOperand U 
)
static
static AvailableValsTy& getAvailableVals ( void *  AV)
static
static MachineInstrBuilder InsertNewDef ( unsigned  Opcode,
MachineBasicBlock BB,
MachineBasicBlock::iterator  I,
const TargetRegisterClass RC,
MachineRegisterInfo MRI,
const TargetInstrInfo TII 
)
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 112 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 unsigned LookForIdenticalPHI ( MachineBasicBlock BB,
SmallVectorImpl< std::pair< MachineBasicBlock *, unsigned > > &  PredValues 
)
static