LLVM API Documentation

Defines | Enumerations | Functions | Variables
ARMExpandPseudoInsts.cpp File Reference
#include "ARM.h"
#include "ARMBaseInstrInfo.h"
#include "ARMBaseRegisterInfo.h"
#include "ARMConstantPoolValue.h"
#include "ARMMachineFunctionInfo.h"
#include "MCTargetDesc/ARMAddressingModes.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetRegisterInfo.h"
Include dependency graph for ARMExpandPseudoInsts.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "arm-pseudo"

Enumerations

enum  NEONRegSpacing

Functions

static const NEONLdStTableEntry * LookupNEONLdSt (unsigned Opcode)
static void GetDSubRegs (unsigned Reg, NEONRegSpacing RegSpc, const TargetRegisterInfo *TRI, unsigned &D0, unsigned &D1, unsigned &D2, unsigned &D3)
static bool IsAnAddressOperand (const MachineOperand &MO)

Variables

static cl::opt< boolVerifyARMPseudo ("verify-arm-pseudo-expand", cl::Hidden, cl::desc("Verify machine code after expanding ARM pseudos"))
static const NEONLdStTableEntry NEONLdStTable []

Define Documentation

#define DEBUG_TYPE   "arm-pseudo"

Definition at line 34 of file ARMExpandPseudoInsts.cpp.


Enumeration Type Documentation

Definition at line 96 of file ARMExpandPseudoInsts.cpp.


Function Documentation

static void GetDSubRegs ( unsigned  Reg,
NEONRegSpacing  RegSpc,
const TargetRegisterInfo TRI,
unsigned D0,
unsigned D1,
unsigned D2,
unsigned D3 
) [static]

GetDSubRegs - Get 4 D subregisters of a Q, QQ, or QQQQ register, corresponding to the specified register spacing. Not all of the results are necessarily valid, e.g., a Q register only has 2 D subregisters.

Definition at line 356 of file ARMExpandPseudoInsts.cpp.

References llvm::MCRegisterInfo::getSubReg().

static bool IsAnAddressOperand ( const MachineOperand MO) [static]
static const NEONLdStTableEntry* LookupNEONLdSt ( unsigned  Opcode) [static]

LookupNEONLdSt - Search the NEONLdStTable for information about a NEON load or store pseudo instruction.

Definition at line 332 of file ARMExpandPseudoInsts.cpp.

References llvm::array_lengthof(), I, and NEONLdStTable.


Variable Documentation

const NEONLdStTableEntry NEONLdStTable[] [static]

Definition at line 134 of file ARMExpandPseudoInsts.cpp.

Referenced by LookupNEONLdSt().

cl::opt<bool> VerifyARMPseudo("verify-arm-pseudo-expand", cl::Hidden, cl::desc("Verify machine code after expanding ARM pseudos")) [static]