LLVM  8.0.1
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 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

 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)
 
 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

◆ DEBUG_TYPE

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

Definition at line 48 of file AArch64A57FPLoadBalancing.cpp.

Enumeration Type Documentation

◆ Color

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 103 of file AArch64A57FPLoadBalancing.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AArch64A57FPLoadBalancing  ,
DEBUG_TYPE  ,
"AArch64 A57 FP Load-Balancing ,
false  ,
false   
)

◆ isMla()

static bool isMla ( MachineInstr MI)
static

Definition at line 82 of file AArch64A57FPLoadBalancing.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by false::Chain::str().

◆ isMul()

static bool isMul ( MachineInstr MI)
static

Definition at line 69 of file AArch64A57FPLoadBalancing.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by false::Chain::str().

Variable Documentation

◆ Balancing

AArch64 A57 FP Load Balancing

Definition at line 157 of file AArch64A57FPLoadBalancing.cpp.

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 157 of file AArch64A57FPLoadBalancing.cpp.

◆ false

AArch64 A57 FP Load false

Definition at line 157 of file AArch64A57FPLoadBalancing.cpp.

◆ OverrideBalance

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

◆ TransformAll

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

Referenced by false::Chain::str().