LLVM  8.0.1
Namespaces | Macros | Functions | Variables
HexagonBitSimplify.cpp File Reference
#include "BitTracker.h"
#include "HexagonBitTracker.h"
#include "HexagonInstrInfo.h"
#include "HexagonRegisterInfo.h"
#include "HexagonSubtarget.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/MC/MCInstrDesc.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/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <iterator>
#include <limits>
#include <utility>
#include <vector>
Include dependency graph for HexagonBitSimplify.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Macros

#define DEBUG_TYPE   "hexbit"
 

Functions

void llvm::initializeHexagonBitSimplifyPass (PassRegistry &Registry)
 
FunctionPassllvm::createHexagonBitSimplify ()
 
 INITIALIZE_PASS_BEGIN (HexagonBitSimplify, "hexagon-bit-simplify", "Hexagon bit simplification", false, false) INITIALIZE_PASS_END(HexagonBitSimplify
 
FunctionPassllvm::createHexagonLoopRescheduling ()
 
void llvm::initializeHexagonLoopReschedulingPass (PassRegistry &)
 
 INITIALIZE_PASS (HexagonLoopRescheduling, "hexagon-loop-resched", "Hexagon Loop Rescheduling", false, false) HexagonLoopRescheduling
 

Variables

static cl::opt< boolPreserveTiedOps ("hexbit-keep-tied", cl::Hidden, cl::init(true), cl::desc("Preserve subregisters in tied operands"))
 
static cl::opt< boolGenExtract ("hexbit-extract", cl::Hidden, cl::init(true), cl::desc("Generate extract instructions"))
 
static cl::opt< boolGenBitSplit ("hexbit-bitsplit", cl::Hidden, cl::init(true), cl::desc("Generate bitsplit instructions"))
 
static cl::opt< unsignedMaxExtract ("hexbit-max-extract", cl::Hidden, cl::init(std::numeric_limits< unsigned >::max()))
 
static unsigned CountExtract = 0
 
static cl::opt< unsignedMaxBitSplit ("hexbit-max-bitsplit", cl::Hidden, cl::init(std::numeric_limits< unsigned >::max()))
 
static unsigned CountBitSplit = 0
 
hexagon bit simplify
 
hexagon bit Hexagon bit simplification
 
hexagon bit Hexagon bit false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hexbit"

Definition at line 47 of file HexagonBitSimplify.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( HexagonLoopRescheduling  ,
"hexagon-loop-resched"  ,
"Hexagon Loop Rescheduling"  ,
false  ,
false   
)

Definition at line 2943 of file HexagonBitSimplify.cpp.

References llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), B, llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::dbgs(), E, F(), llvm::find(), llvm::find_if(), G, llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::getSubReg(), llvm::MachineFunction::getSubtarget(), llvm::MachineRegisterInfo::getVRegDef(), Groups, I, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::BitTracker::BitValue::is(), llvm::MachineOperand::isImm(), llvm::MachineInstr::isPHI(), llvm::MachineOperand::isReg(), llvm::MachineInstr::isTerminator(), llvm::MachineOperand::isUse(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, llvm::BitTracker::BitValue::One, P, llvm::BitTracker::BitRef::Pos, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_end(), llvm::MachineBasicBlock::pred_size(), llvm::printMBBReference(), llvm::printReg(), llvm::BitTracker::BitValue::Ref, llvm::BitTracker::BitValue::RefI, llvm::BitTracker::BitRef::Reg, llvm::BitTracker::run(), SI, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), llvm::MachineBasicBlock::succ_size(), llvm::BitTracker::trace(), llvm::BitTracker::BitValue::Type, llvm::MachineRegisterInfo::use_begin(), llvm::MachineRegisterInfo::use_end(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( HexagonBitSimplify  ,
"hexagon-bit-simplify ,
"Hexagon bit simplification ,
false  ,
false   
)

Variable Documentation

◆ CountBitSplit

unsigned CountBitSplit = 0
static

Definition at line 63 of file HexagonBitSimplify.cpp.

◆ CountExtract

unsigned CountExtract = 0
static

Definition at line 60 of file HexagonBitSimplify.cpp.

◆ false

hexagon bit Hexagon bit false

Definition at line 261 of file HexagonBitSimplify.cpp.

◆ GenBitSplit

cl::opt<bool> GenBitSplit("hexbit-bitsplit", cl::Hidden, cl::init(true), cl::desc("Generate bitsplit instructions"))
static

◆ GenExtract

cl::opt<bool> GenExtract("hexbit-extract", cl::Hidden, cl::init(true), cl::desc("Generate extract instructions"))
static

◆ MaxBitSplit

cl::opt<unsigned> MaxBitSplit("hexbit-max-bitsplit", cl::Hidden, cl::init(std::numeric_limits< unsigned >::max()))
static

◆ MaxExtract

cl::opt<unsigned> MaxExtract("hexbit-max-extract", cl::Hidden, cl::init(std::numeric_limits< unsigned >::max()))
static

◆ PreserveTiedOps

cl::opt<bool> PreserveTiedOps("hexbit-keep-tied", cl::Hidden, cl::init(true), cl::desc("Preserve subregisters in tied operands"))
static

◆ simplification

hexagon bit Hexagon bit simplification

Definition at line 261 of file HexagonBitSimplify.cpp.

◆ simplify

hexagon bit simplify

Definition at line 261 of file HexagonBitSimplify.cpp.

Referenced by llvm::InstCombiner::visitFSub().