LLVM 20.0.0git
Namespaces | Macros | Functions | Variables
HexagonSplitDouble.cpp File Reference
#include "HexagonInstrInfo.h"
#include "HexagonRegisterInfo.h"
#include "HexagonSubtarget.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <limits>
#include <map>
#include <set>
#include <utility>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Macros

#define DEBUG_TYPE   "hsdr"
 

Functions

FunctionPassllvm::createHexagonSplitDoubleRegs ()
 
void llvm::initializeHexagonSplitDoubleRegsPass (PassRegistry &)
 
 INITIALIZE_PASS (HexagonSplitDoubleRegs, "hexagon-split-double", "Hexagon Split Double Registers", false, false) LLVM_DUMP_METHOD void HexagonSplitDoubleRegs
 
static int32_t profitImm (unsigned Imm)
 

Variables

static cl::opt< int > MaxHSDR ("max-hsdr", cl::Hidden, cl::init(-1), cl::desc("Maximum number of split partitions"))
 
static cl::opt< boolMemRefsFixed ("hsdr-no-mem", cl::Hidden, cl::init(true), cl::desc("Do not split loads or stores"))
 
static cl::opt< boolSplitAll ("hsdr-split-all", cl::Hidden, cl::init(false), cl::desc("Split all partitions"))
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hsdr"

Definition at line 43 of file HexagonSplitDouble.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( HexagonSplitDoubleRegs  ,
"hexagon-split-double"  ,
"Hexagon Split Double Registers"  ,
false  ,
false   
)

Definition at line 132 of file HexagonSplitDouble.cpp.

References llvm::dbgs(), I, llvm::printReg(), and TRI.

◆ profitImm()

static int32_t profitImm ( unsigned  Imm)
inlinestatic

Definition at line 306 of file HexagonSplitDouble.cpp.

References P.

Variable Documentation

◆ MaxHSDR

cl::opt< int > MaxHSDR("max-hsdr", cl::Hidden, cl::init(-1), cl::desc("Maximum number of split partitions")) ( "max-hsdr"  ,
cl::Hidden  ,
cl::init(-1)  ,
cl::desc("Maximum number of split partitions")   
)
static

◆ MemRefsFixed

cl::opt< bool > MemRefsFixed("hsdr-no-mem", cl::Hidden, cl::init(true), cl::desc("Do not split loads or stores")) ( "hsdr-no-mem"  ,
cl::Hidden  ,
cl::init(true ,
cl::desc("Do not split loads or stores")   
)
static

◆ SplitAll

cl::opt< bool > SplitAll("hsdr-split-all", cl::Hidden, cl::init(false), cl::desc("Split all partitions")) ( "hsdr-split-all"  ,
cl::Hidden  ,
cl::init(false)  ,
cl::desc("Split all partitions")   
)
static