LLVM  3.7.0
Macros | 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.

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 MachineInstrinsertCopy (const TargetInstrInfo *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)
 

Macro Definition 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 unsigned getTransformOpcode ( unsigned  Opc)
static

Definition at line 161 of file AArch64AdvSIMDScalarPass.cpp.

Referenced by isTransformable().

static MachineInstr* insertCopy ( const TargetInstrInfo 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