LLVM
8.0.1
|
#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"
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) |
#define DEBUG_TYPE "systemz-isel" |
Definition at line 23 of file SystemZISelDAGToDAG.cpp.
Definition at line 393 of file SystemZISelDAGToDAG.cpp.
Referenced by expandAdjDynAlloc(), and expandDisp().
Definition at line 404 of file SystemZISelDAGToDAG.cpp.
References changeComponent().
Referenced by expandDisp(), and shouldUseLA().
|
static |
Definition at line 428 of file SystemZISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::SystemZISD::ADJDYNALLOC, changeComponent(), llvm::ISD::Constant, expandAdjDynAlloc(), expandIndex(), llvm::JumpTable::Full, llvm::getOffset(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), N, llvm::SystemZISD::PCREL_OFFSET, selectDisp(), and llvm::ISD::TRUNCATE.
Referenced by shouldUseLA().
Definition at line 416 of file SystemZISelDAGToDAG.cpp.
Referenced by expandDisp().
Definition at line 1683 of file SystemZISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::SystemZ::CCMASK_0, llvm::SystemZ::CCMASK_1, llvm::SystemZ::CCMASK_2, llvm::SystemZ::CCMASK_3, llvm::dbgs(), llvm::SDNode::dump(), llvm::dyn_cast(), E, llvm::SDValue::getNode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDNode::getValueType(), llvm::MVT::i32, llvm::SystemZISD::IPM, llvm::SystemZ::IPM_CC, LLVM_DEBUG, llvm_unreachable, llvm::SystemZISD::SELECT_CCMASK, llvm::ISD::SHL, llvm::ISD::SRA, llvm::ISD::SRL, llvm::SDNode::use_empty(), and llvm::ISD::XOR.
|
static |
Definition at line 601 of file SystemZISelDAGToDAG.cpp.
References allOnes(), llvm::ISD::AND, assert(), llvm::dyn_cast(), llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FrameIndex, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::SDValue::getNode(), llvm::SDNode::getNodeId(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SelectionDAGISel::getUninvalidatedNodeId(), llvm::SDValue::getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::ConstantSDNode::getZExtValue(), llvm::APInt::getZExtValue(), I, llvm::MVT::i32, llvm::MVT::i64, llvm::SelectionDAGISel::InvalidateNodeId(), llvm::SystemZInstrInfo::isRxSBGMask(), llvm::BitmaskEnumDetail::Mask(), llvm::SelectionDAG::RepositionNode(), llvm::SDNode::setNodeId(), TII, llvm::ISD::TRUNCATE, llvm::KnownBits::Zero, and llvm::ISD::ZERO_EXTEND.
Referenced by maskMatters().
|
static |
Definition at line 1203 of file SystemZISelDAGToDAG.cpp.
References llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNodeId(), llvm::SDValue::getNumOperands(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::SDValue::getResNo(), llvm::SDValue::getValue(), llvm::SDNode::hasNUsesOfValue(), llvm::SDValue::hasOneUse(), llvm::MemSDNode::isNonTemporal(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), llvm::SPII::Load, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::ISD::TokenFactor, llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
|
static |
Definition at line 486 of file SystemZISelDAGToDAG.cpp.
References assert(), llvm_unreachable, and selectDisp().
Referenced by shouldUseLA().
|
static |
Definition at line 754 of file SystemZISelDAGToDAG.cpp.
References allOnes(), llvm::ISD::AND, llvm::ISD::ANY_EXTEND, assert(), llvm::dyn_cast(), llvm::ISD::EXTLOAD, llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDValue::getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::ConstantSDNode::getZExtValue(), llvm::APInt::getZExtValue(), I, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::tgtok::In, insertDAGNode(), llvm::SystemZ::isImmHF(), llvm::SystemZ::isImmLF(), llvm::EVT::isInteger(), llvm::SDNode::isMachineOpcode(), LLVM_FALLTHROUGH, llvm::SPII::Load, llvm::BitmaskEnumDetail::Mask(), N, llvm::KnownBits::One, llvm::ISD::OR, llvm::ISD::ROTL, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, llvm::ISD::SRA, llvm::ISD::SRL, llvm::ISD::TRUNCATE, llvm::KnownBits::Zero, llvm::ISD::ZERO_EXTEND, and llvm::ISD::ZEXTLOAD.
|
static |
Definition at line 375 of file SystemZISelDAGToDAG.cpp.
References llvm_unreachable.
Referenced by expandDisp(), and isValidDisp().
Definition at line 506 of file SystemZISelDAGToDAG.cpp.
References llvm::SystemZISD::ADJDYNALLOC, llvm::ISD::Constant, expandAdjDynAlloc(), expandDisp(), llvm::ISD::FrameIndex, llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDNode::hasOneUse(), llvm::isInt< 16 >(), isValidDisp(), LLVM_DEBUG, llvm::ISD::SIGN_EXTEND, and llvm::ISD::SIGN_EXTEND_INREG.