LLVM API Documentation
#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"
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< bool > | VerifyARMPseudo ("verify-arm-pseudo-expand", cl::Hidden, cl::desc("Verify machine code after expanding ARM pseudos")) |
static const NEONLdStTableEntry | NEONLdStTable [] |
#define DEBUG_TYPE "arm-pseudo" |
Definition at line 34 of file ARMExpandPseudoInsts.cpp.
enum NEONRegSpacing |
Definition at line 96 of file ARMExpandPseudoInsts.cpp.
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] |
Definition at line 619 of file ARMExpandPseudoInsts.cpp.
References llvm::MachineOperand::getType(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_FrameIndex, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Metadata, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterLiveOut, llvm::MachineOperand::MO_RegisterMask, and llvm::MachineOperand::MO_TargetIndex.
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.
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] |