LLVM 22.0.0git
SystemZISelDAGToDAG.cpp File Reference
#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)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "systemz-isel"

Definition at line 23 of file SystemZISelDAGToDAG.cpp.

◆ PASS_NAME

#define PASS_NAME   "SystemZ DAG->DAG Pattern Instruction Selection"

Definition at line 24 of file SystemZISelDAGToDAG.cpp.

Function Documentation

◆ changeComponent()

void changeComponent ( SystemZAddressingMode & AM,
bool IsBase,
SDValue Value )
static

Definition at line 429 of file SystemZISelDAGToDAG.cpp.

Referenced by expandAdjDynAlloc(), and expandDisp().

◆ expandAdjDynAlloc()

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

Definition at line 440 of file SystemZISelDAGToDAG.cpp.

References changeComponent().

◆ expandDisp()

bool expandDisp ( SystemZAddressingMode & AM,
bool IsBase,
SDValue Op0,
uint64_t Op1 )
static

Definition at line 464 of file SystemZISelDAGToDAG.cpp.

References changeComponent(), and selectDisp().

◆ expandIndex()

bool expandIndex ( SystemZAddressingMode & AM,
SDValue Base,
SDValue Index )
static

Definition at line 452 of file SystemZISelDAGToDAG.cpp.

References llvm::sampleprof::Base, and llvm::SDValue::getNode().

◆ getIPMConversion()

IPMConversion getIPMConversion ( unsigned CCValid,
unsigned CCMask )
static

◆ insertDAGNode()

◆ isFusableLoadOpStorePattern()

◆ isValidDisp()

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

Definition at line 523 of file SystemZISelDAGToDAG.cpp.

References assert(), llvm::isUInt(), llvm_unreachable, and selectDisp().

◆ maskMatters()

bool maskMatters ( RxSBGOperands & RxSBG,
uint64_t Mask )
static

Definition at line 791 of file SystemZISelDAGToDAG.cpp.

◆ selectDisp()

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

Definition at line 411 of file SystemZISelDAGToDAG.cpp.

References llvm::isInt(), llvm::isUInt(), and llvm_unreachable.

Referenced by expandDisp(), and isValidDisp().

◆ shouldUseLA()

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