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] |