|
LLVM 24.0.0git
|
#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/Debug.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "aarch64-simd-scalar" |
| #define | AARCH64_ADVSIMD_NAME "AdvSIMD Scalar Operation Optimization" |
Functions | |
| STATISTIC (NumScalarInsnsUsed, "Number of scalar instructions used") | |
| STATISTIC (NumCopiesDeleted, "Number of cross-class copies deleted") | |
| STATISTIC (NumCopiesInserted, "Number of cross-class copies inserted") | |
| INITIALIZE_PASS (AArch64AdvSIMDScalarLegacy, "aarch64-simd-scalar", AARCH64_ADVSIMD_NAME, false, false) PreservedAnalyses AArch64AdvSIMDScalarPass | |
| static bool | isGPR64 (unsigned Reg, unsigned SubReg, const MachineRegisterInfo *MRI) |
| static bool | isFPR64 (unsigned Reg, unsigned SubReg, const MachineRegisterInfo *MRI) |
| static MachineOperand * | getSrcFromCopy (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) |
| #define AARCH64_ADVSIMD_NAME "AdvSIMD Scalar Operation Optimization" |
Definition at line 55 of file AArch64AdvSIMDScalarPass.cpp.
Referenced by INITIALIZE_PASS().
| #define DEBUG_TYPE "aarch64-simd-scalar" |
Definition at line 49 of file AArch64AdvSIMDScalarPass.cpp.
|
static |
Definition at line 135 of file AArch64AdvSIMDScalarPass.cpp.
Definition at line 172 of file AArch64AdvSIMDScalarPass.cpp.
References Opc.
Referenced by isTransformable().
| INITIALIZE_PASS | ( | AArch64AdvSIMDScalarLegacy | , |
| "aarch64-simd-scalar" | , | ||
| AARCH64_ADVSIMD_NAME | , | ||
| false | , | ||
| false | ) |
Definition at line 98 of file AArch64AdvSIMDScalarPass.cpp.
References AARCH64_ADVSIMD_NAME, llvm::PreservedAnalyses::all(), Changed, llvm::getMachineFunctionPassPreservedAnalyses(), and llvm::PreservedAnalyses::preserveSet().
|
static |
Definition at line 282 of file AArch64AdvSIMDScalarPass.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::dbgs(), llvm::getKillRegState(), LLVM_DEBUG, MI, and TII.
|
static |
Definition at line 121 of file AArch64AdvSIMDScalarPass.cpp.
References contains(), llvm::MachineRegisterInfo::getRegClass(), llvm::MCRegisterClass::hasSuperClassEq(), llvm::Register::isVirtualRegister(), and Reg.
Referenced by getSrcFromCopy().
|
static |
Definition at line 112 of file AArch64AdvSIMDScalarPass.cpp.
References llvm::MachineRegisterInfo::getRegClass(), llvm::MCRegisterClass::hasSuperClassEq(), llvm::Register::isVirtualRegister(), and Reg.
Referenced by getSrcFromCopy().
|
static |
Definition at line 192 of file AArch64AdvSIMDScalarPass.cpp.
References getTransformOpcode(), MI, and Opc.
| STATISTIC | ( | NumCopiesDeleted | , |
| "Number of cross-class copies deleted" | ) |
| STATISTIC | ( | NumCopiesInserted | , |
| "Number of cross-class copies inserted" | ) |
| STATISTIC | ( | NumScalarInsnsUsed | , |
| "Number of scalar instructions used" | ) |