LLVM API Documentation

RegAllocLocal.cpp File Reference

#include "llvm/BasicBlock.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/RegAllocRegistry.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Compiler.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/IndexedMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include <algorithm>

Include dependency graph for RegAllocLocal.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "regalloc"

Functions

 STATISTIC (NumStores,"Number of stores added")
 STATISTIC (NumLoads,"Number of loads added")
static bool isReadModWriteImplicitKill (MachineInstr *MI, unsigned Reg)
static bool isReadModWriteImplicitDef (MachineInstr *MI, unsigned Reg)
static bool precedes (MachineBasicBlock::iterator A, MachineBasicBlock::iterator B)
FunctionPass * llvm::createLocalRegisterAllocator ()

Variables

static RegisterRegAlloc localRegAlloc ("local","local register allocator", createLocalRegisterAllocator)


Define Documentation

#define DEBUG_TYPE   "regalloc"

Definition at line 15 of file RegAllocLocal.cpp.


Function Documentation

static bool isReadModWriteImplicitDef ( MachineInstr *  MI,
unsigned  Reg 
) [static]

isReadModWriteImplicitDef - True if this is an implicit def for a read/mod/write register, i.e. update partial register.

Definition at line 558 of file RegAllocLocal.cpp.

References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isKill(), and llvm::MachineOperand::isReg().

static bool isReadModWriteImplicitKill ( MachineInstr *  MI,
unsigned  Reg 
) [static]

isReadModWriteImplicitKill - True if this is an implicit kill for a read/mod/write register, i.e. update partial register.

Definition at line 546 of file RegAllocLocal.cpp.

References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), and llvm::MachineOperand::isReg().

static bool precedes ( MachineBasicBlock::iterator  A,
MachineBasicBlock::iterator  B 
) [static]

STATISTIC ( NumLoads  ,
"Number of loads added"   
)

STATISTIC ( NumStores  ,
"Number of stores added"   
)


Variable Documentation

char ID [static]

Definition at line 47 of file RegAllocLocal.cpp.

RegisterRegAlloc localRegAlloc("local","local register allocator", createLocalRegisterAllocator) [static]

Definition at line 51 of file RegAllocLocal.cpp.

std::vector<int> PhysRegsUsed

Definition at line 76 of file RegAllocLocal.cpp.

std::vector<unsigned> PhysRegsUseOrder

Definition at line 86 of file RegAllocLocal.cpp.

Definition at line 57 of file RegAllocLocal.cpp.

Definition at line 53 of file RegAllocLocal.cpp.

const TargetMachine* TM

Definition at line 50 of file RegAllocLocal.cpp.

Definition at line 52 of file RegAllocLocal.cpp.

Definition at line 107 of file RegAllocLocal.cpp.

Definition at line 91 of file RegAllocLocal.cpp.

Definition at line 61 of file RegAllocLocal.cpp.

Definition at line 103 of file RegAllocLocal.cpp.