LLVM 22.0.0git
HexagonSplitDouble.cpp File Reference
#include "Hexagon.h"
#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.

Macros

#define DEBUG_TYPE   "hsdr"

Functions

 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 44 of file HexagonSplitDouble.cpp.

Function Documentation

◆ INITIALIZE_PASS()

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

Definition at line 126 of file HexagonSplitDouble.cpp.

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

◆ profitImm()

int32_t profitImm ( unsigned Imm)
inlinestatic

Definition at line 300 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