LLVM API Documentation

Defines | Functions | Variables
AArch64AdvSIMDScalarPass.cpp File Reference
#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"
Include dependency graph for AArch64AdvSIMDScalarPass.cpp:

Go to the source code of this file.

Defines

#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 int getTransformOpcode (unsigned Opc)
static bool isTransformable (const MachineInstr *MI)
static MachineInstrinsertCopy (const AArch64InstrInfo *TII, MachineInstr *MI, unsigned Dst, unsigned Src, bool IsKill)

Variables

static cl::opt< boolTransformAll ("aarch64-simd-scalar-force-all", cl::desc("Force use of AdvSIMD scalar instructions everywhere"), cl::init(false), cl::Hidden)

Define Documentation

#define DEBUG_TYPE   "aarch64-simd-scalar"

Definition at line 51 of file AArch64AdvSIMDScalarPass.cpp.


Function Documentation

static unsigned getSrcFromCopy ( const MachineInstr MI,
const MachineRegisterInfo MRI,
unsigned SubReg 
) [static]
static int getTransformOpcode ( unsigned  Opc) [static]

Definition at line 161 of file AArch64AdvSIMDScalarPass.cpp.

Referenced by isTransformable().

static MachineInstr* insertCopy ( const AArch64InstrInfo TII,
MachineInstr MI,
unsigned  Dst,
unsigned  Src,
bool  IsKill 
) [static]
static bool isFPR64 ( unsigned  Reg,
unsigned  SubReg,
const MachineRegisterInfo MRI 
) [static]
static bool isGPR64 ( unsigned  Reg,
unsigned  SubReg,
const MachineRegisterInfo MRI 
) [static]
static bool isTransformable ( const MachineInstr MI) [static]
STATISTIC ( NumScalarInsnsUsed  ,
"Number of scalar instructions used"   
)
STATISTIC ( NumCopiesDeleted  ,
"Number of cross-class copies deleted"   
)
STATISTIC ( NumCopiesInserted  ,
"Number of cross-class copies inserted"   
)

Variable Documentation

cl::opt<bool> TransformAll("aarch64-simd-scalar-force-all", cl::desc("Force use of AdvSIMD scalar instructions everywhere"), cl::init(false), cl::Hidden) [static]