LLVM 22.0.0git
|
#include "SystemZTargetMachine.h"
#include "SystemZISelLowering.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" |
#define | PASS_NAME "SystemZ DAG->DAG Pattern Instruction Selection" |
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.
#define PASS_NAME "SystemZ DAG->DAG Pattern Instruction Selection" |
Definition at line 24 of file SystemZISelDAGToDAG.cpp.
Definition at line 429 of file SystemZISelDAGToDAG.cpp.
Referenced by expandAdjDynAlloc(), and expandDisp().
Definition at line 440 of file SystemZISelDAGToDAG.cpp.
References changeComponent().
Definition at line 464 of file SystemZISelDAGToDAG.cpp.
References changeComponent(), and selectDisp().
Definition at line 452 of file SystemZISelDAGToDAG.cpp.
References llvm::sampleprof::Base, and llvm::SDValue::getNode().
Definition at line 1947 of file SystemZISelDAGToDAG.cpp.
References llvm::SystemZ::CCMASK_0, llvm::SystemZ::CCMASK_1, llvm::SystemZ::CCMASK_2, llvm::SystemZ::CCMASK_3, llvm::SystemZ::IPM_CC, and llvm_unreachable.
|
static |
Definition at line 638 of file SystemZISelDAGToDAG.cpp.
References llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::SDNode::getNodeId(), llvm::SelectionDAGISel::getUninvalidatedNodeId(), llvm::SelectionDAGISel::InvalidateNodeId(), N, and llvm::SelectionDAG::RepositionNode().
Referenced by foldMaskAndShiftToExtract(), foldMaskAndShiftToScale(), foldMaskedShiftToBEXTR(), and foldMaskedShiftToScaledMask().
|
static |
Definition at line 1314 of file SystemZISelDAGToDAG.cpp.
References llvm::cast(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDValue::getNumOperands(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::SDNode::getOperand(), llvm::SDValue::getOperand(), llvm::SDValue::getResNo(), llvm::SDNode::hasNUsesOfValue(), llvm::SDNode::hasPredecessorHelper(), llvm::MemSDNode::isNonTemporal(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), llvm::SDNode::ops(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::ISD::TokenFactor.
|
static |
Definition at line 523 of file SystemZISelDAGToDAG.cpp.
References assert(), llvm::isUInt(), llvm_unreachable, and selectDisp().
Definition at line 791 of file SystemZISelDAGToDAG.cpp.
|
static |
Definition at line 411 of file SystemZISelDAGToDAG.cpp.
References llvm::isInt(), llvm::isUInt(), and llvm_unreachable.
Referenced by expandDisp(), and isValidDisp().
Definition at line 543 of file SystemZISelDAGToDAG.cpp.
References llvm::sampleprof::Base, llvm::ISD::FrameIndex, llvm::isInt(), llvm::isUInt(), llvm::ISD::SIGN_EXTEND, and llvm::ISD::SIGN_EXTEND_INREG.