LLVM 24.0.0git
AArch64AdvSIMDScalarPass.cpp File Reference

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)

Macro Definition Documentation

◆ AARCH64_ADVSIMD_NAME

#define AARCH64_ADVSIMD_NAME   "AdvSIMD Scalar Operation Optimization"

Definition at line 55 of file AArch64AdvSIMDScalarPass.cpp.

Referenced by INITIALIZE_PASS().

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-simd-scalar"

Definition at line 49 of file AArch64AdvSIMDScalarPass.cpp.

Function Documentation

◆ getSrcFromCopy()

MachineOperand * getSrcFromCopy ( MachineInstr * MI,
const MachineRegisterInfo * MRI,
unsigned & SubReg )
static

Definition at line 135 of file AArch64AdvSIMDScalarPass.cpp.

References isFPR64(), isGPR64(), and MI.

◆ getTransformOpcode()

unsigned getTransformOpcode ( unsigned Opc)
static

Definition at line 172 of file AArch64AdvSIMDScalarPass.cpp.

References Opc.

Referenced by isTransformable().

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( AArch64AdvSIMDScalarLegacy ,
"aarch64-simd-scalar" ,
AARCH64_ADVSIMD_NAME ,
false ,
false  )

◆ insertCopy()

◆ isFPR64()

◆ isGPR64()

◆ isTransformable()

bool isTransformable ( const MachineInstr & MI)
static

Definition at line 192 of file AArch64AdvSIMDScalarPass.cpp.

References getTransformOpcode(), MI, and Opc.

◆ STATISTIC() [1/3]

STATISTIC ( NumCopiesDeleted ,
"Number of cross-class copies deleted"  )

◆ STATISTIC() [2/3]

STATISTIC ( NumCopiesInserted ,
"Number of cross-class copies inserted"  )

◆ STATISTIC() [3/3]

STATISTIC ( NumScalarInsnsUsed ,
"Number of scalar instructions used"  )