|
LLVM 23.0.0git
|
#include "SystemZISelLowering.h"#include "SystemZTargetMachine.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/CodeGen/SelectionDAGISel.h"#include "llvm/IR/Module.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 24 of file SystemZISelDAGToDAG.cpp.
| #define PASS_NAME "SystemZ DAG->DAG Pattern Instruction Selection" |
Definition at line 25 of file SystemZISelDAGToDAG.cpp.
Definition at line 434 of file SystemZISelDAGToDAG.cpp.
Referenced by expandAdjDynAlloc(), and expandDisp().
Definition at line 445 of file SystemZISelDAGToDAG.cpp.
References changeComponent().
Definition at line 469 of file SystemZISelDAGToDAG.cpp.
References changeComponent(), and selectDisp().
Definition at line 457 of file SystemZISelDAGToDAG.cpp.
References llvm::sampleprof::Base, and llvm::SDValue::getNode().
Definition at line 1952 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 643 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 1319 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 528 of file SystemZISelDAGToDAG.cpp.
References assert(), llvm::isUInt(), llvm_unreachable, and selectDisp().
Definition at line 796 of file SystemZISelDAGToDAG.cpp.
|
static |
Definition at line 416 of file SystemZISelDAGToDAG.cpp.
References llvm::isInt(), llvm::isUInt(), and llvm_unreachable.
Referenced by expandDisp(), and isValidDisp().
Definition at line 548 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.