LLVM  10.0.0svn
Macros | Functions | Variables
CombinerHelper.cpp File Reference
#include "llvm/CodeGen/GlobalISel/CombinerHelper.h"
#include "llvm/CodeGen/GlobalISel/Combiner.h"
#include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h"
#include "llvm/CodeGen/GlobalISel/GISelKnownBits.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/Target/TargetMachine.h"
Include dependency graph for CombinerHelper.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "gi-combiner"
 

Functions

static bool shouldLowerMemFuncForSize (const MachineFunction &MF)
 
static bool findGISelOptimalMemOpLowering (std::vector< LLT > &MemOps, unsigned Limit, uint64_t Size, unsigned DstAlign, unsigned SrcAlign, bool IsMemset, bool ZeroMemset, bool MemcpyStrSrc, bool AllowOverlap, unsigned DstAS, unsigned SrcAS, const AttributeList &FuncAttributes, const TargetLowering &TLI)
 
static TypegetTypeForLLT (LLT Ty, LLVMContext &C)
 
static Register getMemsetValue (Register Val, LLT Ty, MachineIRBuilder &MIB)
 

Variables

static cl::opt< boolForceLegalIndexing ("force-legal-indexing", cl::Hidden, cl::init(false), cl::desc("Force all indexed operations to be " "legal for the GlobalISel combiner"))
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "gi-combiner"

Definition at line 22 of file CombinerHelper.cpp.

Function Documentation

◆ findGISelOptimalMemOpLowering()

static bool findGISelOptimalMemOpLowering ( std::vector< LLT > &  MemOps,
unsigned  Limit,
uint64_t  Size,
unsigned  DstAlign,
unsigned  SrcAlign,
bool  IsMemset,
bool  ZeroMemset,
bool  MemcpyStrSrc,
bool  AllowOverlap,
unsigned  DstAS,
unsigned  SrcAS,
const AttributeList FuncAttributes,
const TargetLowering TLI 
)
static

◆ getMemsetValue()

static Register getMemsetValue ( Register  Val,
LLT  Ty,
MachineIRBuilder MIB 
)
static

Definition at line 714 of file CombinerHelper.cpp.

References assert(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildGEP(), llvm::MachineIRBuilder::buildLoad(), llvm::MachineIRBuilder::buildMul(), llvm::MachineIRBuilder::buildStore(), llvm::MachineIRBuilder::buildTrunc(), llvm::MachineIRBuilder::buildZExtOrTrunc(), C, llvm::dbgs(), llvm::MachineInstr::eraseFromParent(), findGISelOptimalMemOpLowering(), llvm::MachinePointerInfo::getAddrSpace(), llvm::getConstantVRegValWithLookThrough(), llvm::Function::getContext(), llvm::Instruction::getFunction(), llvm::MachineOperand::getIndex(), llvm::MachineIRBuilder::getMRI(), llvm::getMVTForLLT(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::getOpcodeDef(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineInstrBuilder::getReg(), llvm::LLT::getScalarSizeInBits(), llvm::LLT::getScalarType(), llvm::LLT::getSizeInBits(), llvm::getSizeInBits(), llvm::LLT::getSizeInBytes(), llvm::APInt::getSplat(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::MachineRegisterInfo::getType(), getTypeForLLT(), I, llvm::MachineFrameInfo::isFixedObjectIndex(), llvm::LLT::isVector(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::IsVolatile, LLVM_DEBUG, Magic, llvm::MachineInstr::memoperands_begin(), llvm::MinAlign(), llvm::CombinerHelper::MRI, llvm::TargetRegisterInfo::needsStackRealignment(), llvm::SmallVectorTemplateBase< T >::push_back(), Register, llvm::LLT::scalar(), llvm::NVPTX::PTXLdStInstCode::Scalar, llvm::MachineFrameInfo::setObjectAlignment(), shouldLowerMemFuncForSize(), Size, and TRI.

◆ getTypeForLLT()

static Type* getTypeForLLT ( LLT  Ty,
LLVMContext C 
)
static

◆ shouldLowerMemFuncForSize()

static bool shouldLowerMemFuncForSize ( const MachineFunction MF)
static

Variable Documentation

◆ ForceLegalIndexing

cl::opt<bool> ForceLegalIndexing("force-legal-indexing", cl::Hidden, cl::init(false), cl::desc("Force all indexed operations to be " "legal for the GlobalISel combiner"))
static