LLVM  6.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)
 

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 383 of file SystemZISelDAGToDAG.cpp.

Referenced by expandAdjDynAlloc(), and expandDisp().

◆ expandAdjDynAlloc()

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

Definition at line 394 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 406 of file SystemZISelDAGToDAG.cpp.

Referenced by expandDisp().

◆ insertDAGNode()

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

◆ isValidDisp()

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

Definition at line 476 of file SystemZISelDAGToDAG.cpp.

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

Referenced by shouldUseLA().

◆ maskMatters()

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

Definition at line 739 of file SystemZISelDAGToDAG.cpp.

References allOnes(), llvm::ISD::AND, llvm::ISD::ANY_EXTEND, assert(), llvm::EVT::changeVectorElementTypeToInteger(), 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, DEBUG, llvm::SDNode::dump(), llvm::dyn_cast(), llvm::WebAssembly::End, llvm::errs(), llvm::ISD::EXTLOAD, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::MemSDNode::getAAInfo(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::TargetRegisterClass::getID(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::EVT::getScalarSizeInBits(), llvm::EVT::getSizeInBits(), llvm::MemSDNode::getSrcValueOffset(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::getValue(), llvm::HandleSDNode::getValue(), llvm::StoreSDNode::getValue(), llvm::SDValue::getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), llvm::ConstantSDNode::getZExtValue(), llvm::APInt::getZExtValue(), I, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::tgtok::In, llvm::ISD::INSERT_VECTOR_ELT, insertDAGNode(), 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::SystemZISD::isPCREL(), llvm::MemSDNode::isVolatile(), LLVM_FALLTHROUGH, llvm_unreachable, llvm::SPII::Load, llvm::ISD::LOAD, llvm::Lower, llvm::BitmaskEnumDetail::Mask(), N, llvm::KnownBits::One, llvm::ISD::OR, llvm::MVT::Other, llvm::ISD::Register, llvm::ISD::ROTL, llvm::MCID::Select, llvm::SystemZISD::SELECT_CCMASK, llvm::SDNode::setNodeId(), llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::ISD::SRA, llvm::ISD::SRL, llvm::SPII::Store, llvm::ISD::STORE, llvm::ISD::TargetFrameIndex, llvm::ISD::TRUNCATE, llvm::Upper, llvm::NVPTX::PTXLdStInstCode::V2, llvm::ISD::XOR, llvm::KnownBits::Zero, llvm::ISD::ZERO_EXTEND, and llvm::ISD::ZEXTLOAD.

◆ selectDisp()

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

Definition at line 365 of file SystemZISelDAGToDAG.cpp.

References llvm_unreachable.

Referenced by expandDisp(), and isValidDisp().

◆ shouldUseLA()

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