|
LLVM
3.7.0
|
#include "AArch64.h"#include "AArch64InstrInfo.h"#include "AArch64RegisterInfo.h"#include "AArch64Subtarget.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "aarch64-simd-scalar" |
Functions | |
| STATISTIC (NumScalarInsnsUsed,"Number of scalar instructions used") | |
| STATISTIC (NumCopiesDeleted,"Number of cross-class copies deleted") | |
| STATISTIC (NumCopiesInserted,"Number of cross-class copies inserted") | |
| static bool | isGPR64 (unsigned Reg, unsigned SubReg, const MachineRegisterInfo *MRI) |
| static bool | isFPR64 (unsigned Reg, unsigned SubReg, const MachineRegisterInfo *MRI) |
| static unsigned | getSrcFromCopy (const MachineInstr *MI, const MachineRegisterInfo *MRI, unsigned &SubReg) |
| static unsigned | getTransformOpcode (unsigned Opc) |
| static bool | isTransformable (const MachineInstr *MI) |
| static MachineInstr * | insertCopy (const TargetInstrInfo *TII, MachineInstr *MI, unsigned Dst, unsigned Src, bool IsKill) |
Variables | |
| static cl::opt< bool > | TransformAll ("aarch64-simd-scalar-force-all", cl::desc("Force use of AdvSIMD scalar instructions everywhere"), cl::init(false), cl::Hidden) |
| #define DEBUG_TYPE "aarch64-simd-scalar" |
Definition at line 51 of file AArch64AdvSIMDScalarPass.cpp.
|
static |
Definition at line 124 of file AArch64AdvSIMDScalarPass.cpp.
References llvm::TargetOpcode::COPY, llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), isFPR64(), and isGPR64().
Definition at line 161 of file AArch64AdvSIMDScalarPass.cpp.
Referenced by isTransformable().
|
static |
Definition at line 271 of file AArch64AdvSIMDScalarPass.cpp.
References llvm::BuildMI(), llvm::TargetOpcode::COPY, llvm::dbgs(), DEBUG, llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), llvm::getKillRegState(), llvm::MachineInstr::getParent(), and llvm::AArch64CC::MI.
|
static |
Definition at line 110 of file AArch64AdvSIMDScalarPass.cpp.
References contains(), llvm::MachineRegisterInfo::getRegClass(), llvm::TargetRegisterClass::hasSuperClassEq(), and llvm::TargetRegisterInfo::isVirtualRegister().
Referenced by getSrcFromCopy().
|
static |
Definition at line 101 of file AArch64AdvSIMDScalarPass.cpp.
References llvm::MachineRegisterInfo::getRegClass(), llvm::TargetRegisterClass::hasSuperClassEq(), and llvm::TargetRegisterInfo::isVirtualRegister().
Referenced by getSrcFromCopy().
|
static |
Definition at line 181 of file AArch64AdvSIMDScalarPass.cpp.
References llvm::MachineInstr::getOpcode(), and getTransformOpcode().
| STATISTIC | ( | NumScalarInsnsUsed | , |
| "Number of scalar instructions used" | |||
| ) |
| STATISTIC | ( | NumCopiesDeleted | , |
| "Number of cross-class copies deleted" | |||
| ) |
| STATISTIC | ( | NumCopiesInserted | , |
| "Number of cross-class copies inserted" | |||
| ) |
|
static |
1.8.6