LLVM  3.7.0
Classes | Namespaces | Macros | Enumerations | Functions | Variables
AArch64A57FPLoadBalancing.cpp File Reference
#include "AArch64.h"
#include "AArch64InstrInfo.h"
#include "AArch64Subtarget.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/EquivalenceClasses.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/CodeGen/RegisterClassInfo.h"
#include "llvm/CodeGen/RegisterScavenging.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <list>
Include dependency graph for AArch64A57FPLoadBalancing.cpp:

Go to the source code of this file.

Classes

class  false::Chain
 A Chain is a sequence of instructions that are linked together by an accumulation operand. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 false
 

Macros

#define DEBUG_TYPE   "aarch64-a57-fp-load-balancing"
 

Enumerations

enum  Color
 A "color", which is either even or odd. More...
 

Functions

static bool isMul (MachineInstr *MI)
 
static bool isMla (MachineInstr *MI)
 
static void llvm::initializeAArch64A57FPLoadBalancingPass (PassRegistry &)
 
 INITIALIZE_PASS_BEGIN (AArch64A57FPLoadBalancing, DEBUG_TYPE,"AArch64 A57 FP Load-Balancing", false, false) INITIALIZE_PASS_END(AArch64A57FPLoadBalancing
 

Variables

static cl::opt< boolTransformAll ("aarch64-a57-fp-load-balancing-force-all", cl::desc("Always modify dest registers regardless of color"), cl::init(false), cl::Hidden)
 
static cl::opt< unsignedOverrideBalance ("aarch64-a57-fp-load-balancing-override", cl::desc("Ignore balance information, always return ""(1: Even, 2: Odd)."), cl::init(0), cl::Hidden)
 
 DEBUG_TYPE
 
AArch64 A57 FP Load Balancing
 
AArch64 A57 FP Load false
 

Macro Definition Documentation

#define DEBUG_TYPE   "aarch64-a57-fp-load-balancing"

Definition at line 49 of file AArch64A57FPLoadBalancing.cpp.

Enumeration Type Documentation

enum Color
strong

A "color", which is either even or odd.

Yes, these aren't really colors but the algorithm is conceptually doing two-color graph coloring.

Definition at line 108 of file AArch64A57FPLoadBalancing.cpp.

Function Documentation

INITIALIZE_PASS_BEGIN ( AArch64A57FPLoadBalancing  ,
DEBUG_TYPE  ,
"AArch64 A57 FP Load-Balancing ,
false  ,
false   
)
static bool isMla ( MachineInstr MI)
static

Definition at line 83 of file AArch64A57FPLoadBalancing.cpp.

References llvm::MachineInstr::getOpcode().

static bool isMul ( MachineInstr MI)
static

Definition at line 70 of file AArch64A57FPLoadBalancing.cpp.

References llvm::MachineInstr::getOpcode().

Variable Documentation

AArch64 A57 FP Load Balancing

Definition at line 157 of file AArch64A57FPLoadBalancing.cpp.

DEBUG_TYPE

Definition at line 157 of file AArch64A57FPLoadBalancing.cpp.

AArch64 A57 FP Load false

Definition at line 157 of file AArch64A57FPLoadBalancing.cpp.

cl::opt<unsigned> OverrideBalance("aarch64-a57-fp-load-balancing-override", cl::desc("Ignore balance information, always return ""(1: Even, 2: Odd)."), cl::init(0), cl::Hidden)
static
cl::opt<bool> TransformAll("aarch64-a57-fp-load-balancing-force-all", cl::desc("Always modify dest registers regardless of color"), cl::init(false), cl::Hidden)
static