LLVM 19.0.0git
Macros | Functions
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()

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

Definition at line 417 of file SystemZISelDAGToDAG.cpp.

Referenced by expandAdjDynAlloc(), and expandDisp().

◆ expandAdjDynAlloc()

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

Definition at line 428 of file SystemZISelDAGToDAG.cpp.

References changeComponent().

◆ expandDisp()

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

Definition at line 452 of file SystemZISelDAGToDAG.cpp.

References changeComponent(), and selectDisp().

◆ expandIndex()

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

Definition at line 440 of file SystemZISelDAGToDAG.cpp.

References llvm::sampleprof::Base.

◆ getIPMConversion()

static IPMConversion getIPMConversion ( unsigned  CCValid,
unsigned  CCMask 
)
static

◆ insertDAGNode()

static void insertDAGNode ( SelectionDAG DAG,
SDNode Pos,
SDValue  N 
)
static

◆ isFusableLoadOpStorePattern()

static bool isFusableLoadOpStorePattern ( StoreSDNode StoreNode,
SDValue  StoredVal,
SelectionDAG CurDAG,
LoadSDNode *&  LoadNode,
SDValue InputChain 
)
static

◆ isValidDisp()

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

Definition at line 511 of file SystemZISelDAGToDAG.cpp.

References assert(), llvm_unreachable, and selectDisp().

◆ maskMatters()

static bool maskMatters ( RxSBGOperands &  RxSBG,
uint64_t  Mask 
)
static

Definition at line 779 of file SystemZISelDAGToDAG.cpp.

◆ selectDisp()

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

Definition at line 399 of file SystemZISelDAGToDAG.cpp.

References llvm_unreachable.

Referenced by expandDisp(), and isValidDisp().

◆ shouldUseLA()

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