|
LLVM 24.0.0git
|
#include "SystemZ.h"#include "SystemZISelLowering.h"#include "SystemZTargetMachine.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/CodeGen/SelectionDAGISel.h"#include "llvm/IR/Module.h"#include "llvm/Support/CodeGen.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 26 of file SystemZISelDAGToDAG.cpp.
| #define PASS_NAME "SystemZ DAG->DAG Pattern Instruction Selection" |
Definition at line 27 of file SystemZISelDAGToDAG.cpp.
Definition at line 444 of file SystemZISelDAGToDAG.cpp.
Referenced by expandAdjDynAlloc(), and expandDisp().
Definition at line 455 of file SystemZISelDAGToDAG.cpp.
References changeComponent().
Definition at line 479 of file SystemZISelDAGToDAG.cpp.
References changeComponent(), selectDisp(), and uint64_t.
Definition at line 467 of file SystemZISelDAGToDAG.cpp.
References llvm::sampleprof::Base, and llvm::SDValue::getNode().
Definition at line 2008 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, llvm_unreachable, and uint64_t.
|
static |
Definition at line 653 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 1356 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::Load, llvm::SDNode::ops(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::ISD::TokenFactor.
|
static |
Definition at line 538 of file SystemZISelDAGToDAG.cpp.
References assert(), llvm::isUInt(), llvm_unreachable, and selectDisp().
Definition at line 833 of file SystemZISelDAGToDAG.cpp.
References uint64_t.
|
static |
Definition at line 426 of file SystemZISelDAGToDAG.cpp.
References llvm::isInt(), llvm::isUInt(), and llvm_unreachable.
Referenced by expandDisp(), and isValidDisp().
Definition at line 558 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.