LLVM  8.0.0svn
Macros | Functions
SystemZISelDAGToDAG.cpp File Reference
#include "SystemZTargetMachine.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/raw_ostream.h"
#include "SystemZGenDAGISel.inc"
Include dependency graph for SystemZISelDAGToDAG.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "systemz-isel"
 

Functions

static bool selectDisp (SystemZAddressingMode::DispRange DR, int64_t Val)
 
static void changeComponent (SystemZAddressingMode &AM, bool IsBase, SDValue Value)
 
static bool expandAdjDynAlloc (SystemZAddressingMode &AM, bool IsBase, SDValue Value)
 
static bool expandIndex (SystemZAddressingMode &AM, SDValue Base, SDValue Index)
 
static bool expandDisp (SystemZAddressingMode &AM, bool IsBase, SDValue Op0, uint64_t Op1)
 
static bool isValidDisp (SystemZAddressingMode::DispRange DR, int64_t Val)
 
static bool shouldUseLA (SDNode *Base, int64_t Disp, SDNode *Index)
 
static void insertDAGNode (SelectionDAG *DAG, SDNode *Pos, SDValue N)
 
static bool maskMatters (RxSBGOperands &RxSBG, uint64_t Mask)
 
static bool isFusableLoadOpStorePattern (StoreSDNode *StoreNode, SDValue StoredVal, SelectionDAG *CurDAG, LoadSDNode *&LoadNode, SDValue &InputChain)
 
static IPMConversion getIPMConversion (unsigned CCValid, unsigned CCMask)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "systemz-isel"

Definition at line 23 of file SystemZISelDAGToDAG.cpp.

Function Documentation

◆ changeComponent()

static void changeComponent ( SystemZAddressingMode &  AM,
bool  IsBase,
SDValue  Value 
)
static

Definition at line 393 of file SystemZISelDAGToDAG.cpp.

Referenced by expandAdjDynAlloc(), and expandDisp().

◆ expandAdjDynAlloc()

static bool expandAdjDynAlloc ( SystemZAddressingMode &  AM,
bool  IsBase,
SDValue  Value 
)
static

Definition at line 404 of file SystemZISelDAGToDAG.cpp.

References changeComponent().

Referenced by expandDisp(), and shouldUseLA().

◆ expandDisp()

static bool expandDisp ( SystemZAddressingMode &  AM,
bool  IsBase,
SDValue  Op0,
uint64_t  Op1 
)
static

◆ expandIndex()

static bool expandIndex ( SystemZAddressingMode &  AM,
SDValue  Base,
SDValue  Index 
)
static

Definition at line 416 of file SystemZISelDAGToDAG.cpp.

Referenced by expandDisp().

◆ getIPMConversion()

static IPMConversion getIPMConversion ( unsigned  CCValid,
unsigned  CCMask 
)
static

◆ insertDAGNode()

static void insertDAGNode ( SelectionDAG DAG,
SDNode Pos,
SDValue  N 
)
static

◆ isFusableLoadOpStorePattern()

static bool isFusableLoadOpStorePattern ( StoreSDNode StoreNode,
SDValue  StoredVal,
SelectionDAG CurDAG,
LoadSDNode *&  LoadNode,
SDValue InputChain 
)
static

Definition at line 1206 of file SystemZISelDAGToDAG.cpp.

References llvm::ISD::AND, llvm::tgtok::Bit, llvm::ISD::Constant, llvm::InlineAsm::Constraint_i, llvm::InlineAsm::Constraint_m, llvm::InlineAsm::Constraint_o, llvm::InlineAsm::Constraint_Q, llvm::InlineAsm::Constraint_R, llvm::InlineAsm::Constraint_S, llvm::InlineAsm::Constraint_T, llvm::ISD::CopyToReg, llvm::SDNode::dump(), llvm::dyn_cast(), llvm::errs(), llvm::MemSDNode::getAAInfo(), llvm::ConstantSDNode::getAPIntValue(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::TargetRegisterClass::getID(), llvm::SDNode::getMachineOpcode(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNodeId(), llvm::SDValue::getNumOperands(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), getReg(), llvm::SDValue::getResNo(), llvm::EVT::getScalarSizeInBits(), llvm::MemSDNode::getSrcValueOffset(), llvm::EVT::getStoreSize(), llvm::SDValue::getValue(), llvm::MachineMemOperand::getValue(), llvm::StoreSDNode::getValue(), llvm::SDValue::getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::SDNode::hasNUsesOfValue(), llvm::SDValue::hasOneUse(), llvm::SDNode::hasOneUse(), I, llvm::MVT::i32, llvm::MVT::i64, llvm::SystemZISD::ICMP, llvm::ISD::INSERT_VECTOR_ELT, llvm::MemSDNode::isDereferenceable(), llvm::SystemZ::isImmHF(), llvm::SystemZ::isImmLF(), llvm::isInt< 16 >(), llvm::isInt< 32 >(), llvm::EVT::isInteger(), llvm::MemSDNode::isInvariant(), llvm::SDNode::isMachineOpcode(), llvm::MemSDNode::isNonTemporal(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), llvm::SystemZISD::isPCREL(), llvm::SDNode::isPredecessorOf(), llvm::MemSDNode::isVolatile(), LLVM_DEBUG, LLVM_FALLTHROUGH, llvm_unreachable, llvm::SPII::Load, llvm::ISD::LOAD, N, llvm::ISD::OR, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ISD::Register, Result, llvm::ISD::ROTL, llvm::SystemZISD::SADDO, llvm::MCID::Select, llvm::SystemZISD::SELECT_CCMASK, llvm::SDNode::setNodeId(), llvm::ISD::SHL, llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::ISD::SRL, llvm::SystemZISD::SSUBO, llvm::ISD::STORE, llvm::ISD::TargetFrameIndex, llvm::ISD::TokenFactor, llvm::SystemZISD::UADDO, llvm::SDNode::use_begin(), llvm::SDNode::use_end(), llvm::SDNode::uses(), llvm::SystemZISD::USUBO, llvm::NVPTX::PTXLdStInstCode::V2, llvm::ISD::XOR, and llvm::ISD::ZERO_EXTEND.

◆ isValidDisp()

static bool isValidDisp ( SystemZAddressingMode::DispRange  DR,
int64_t  Val 
)
static

Definition at line 486 of file SystemZISelDAGToDAG.cpp.

References assert(), llvm_unreachable, and selectDisp().

Referenced by shouldUseLA().

◆ maskMatters()

static bool maskMatters ( RxSBGOperands &  RxSBG,
uint64_t  Mask 
)
static

◆ selectDisp()

static bool selectDisp ( SystemZAddressingMode::DispRange  DR,
int64_t  Val 
)
static

Definition at line 375 of file SystemZISelDAGToDAG.cpp.

References llvm_unreachable.

Referenced by expandDisp(), and isValidDisp().

◆ shouldUseLA()

static bool shouldUseLA ( SDNode Base,
int64_t  Disp,
SDNode Index 
)
static