LLVM API Documentation

Namespaces | Functions | Variables
Thumb1RegisterInfo.cpp File Reference
#include "Thumb1RegisterInfo.h"
#include "ARMBaseInstrInfo.h"
#include "ARMMachineFunctionInfo.h"
#include "ARMSubtarget.h"
#include "MCTargetDesc/ARMAddressingModes.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegisterScavenging.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetMachine.h"
Include dependency graph for Thumb1RegisterInfo.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


Functions

static void emitThumbRegPlusImmInReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, DebugLoc dl, unsigned DestReg, unsigned BaseReg, int NumBytes, bool CanChangeCC, const TargetInstrInfo &TII, const ARMBaseRegisterInfo &MRI, unsigned MIFlags=MachineInstr::NoFlags)
static unsigned calcNumMI (int Opc, int ExtraOpc, unsigned Bytes, unsigned NumBits, unsigned Scale)
static void emitThumbConstant (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, unsigned DestReg, int Imm, const TargetInstrInfo &TII, const Thumb1RegisterInfo &MRI, DebugLoc dl)
static void removeOperands (MachineInstr &MI, unsigned i)
static unsigned convertToNonSPOpcode (unsigned Opcode)

Variables

cl::opt< boolllvm::ReuseFrameIndexVals

Function Documentation

static unsigned calcNumMI ( int  Opc,
int  ExtraOpc,
unsigned  Bytes,
unsigned  NumBits,
unsigned  Scale 
) [static]

calcNumMI - Returns the number of instructions required to materialize the specific add / sub r, c instruction.

Definition at line 141 of file Thumb1RegisterInfo.cpp.

Referenced by llvm::emitThumbRegPlusImmediate(), and llvm::Thumb1RegisterInfo::rewriteFrameIndex().

static unsigned convertToNonSPOpcode ( unsigned  Opcode) [static]

convertToNonSPOpcode - Change the opcode to the non-SP version, because we're replacing the frame index with a non-SP register.

Definition at line 331 of file Thumb1RegisterInfo.cpp.

Referenced by llvm::Thumb1RegisterInfo::rewriteFrameIndex().

static void emitThumbConstant ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
unsigned  DestReg,
int  Imm,
const TargetInstrInfo TII,
const Thumb1RegisterInfo MRI,
DebugLoc  dl 
) [static]
static void emitThumbRegPlusImmInReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
DebugLoc  dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
bool  CanChangeCC,
const TargetInstrInfo TII,
const ARMBaseRegisterInfo MRI,
unsigned  MIFlags = MachineInstr::NoFlags 
) [static]
static void removeOperands ( MachineInstr MI,
unsigned  i 
) [static]