LLVM  10.0.0svn
Macros | Functions
AMDGPUISelLowering.cpp File Reference

This is the parent TargetLowering class for hardware code gen targets. More...

#include "AMDGPUISelLowering.h"
#include "AMDGPU.h"
#include "AMDGPUCallLowering.h"
#include "AMDGPUFrameLowering.h"
#include "AMDGPURegisterInfo.h"
#include "AMDGPUSubtarget.h"
#include "AMDGPUTargetMachine.h"
#include "Utils/AMDGPUBaseInfo.h"
#include "R600MachineFunctionInfo.h"
#include "SIInstrInfo.h"
#include "SIMachineFunctionInfo.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/Support/KnownBits.h"
#include "AMDGPUGenCallingConv.inc"
Include dependency graph for AMDGPUISelLowering.cpp:

Go to the source code of this file.

Macros

#define AMDGPU_LOG2E_F   1.44269504088896340735992468100189214f
 
#define AMDGPU_LN2_F   0.693147180559945309417232121458176568f
 
#define AMDGPU_LN10_F   2.30258509299404568401799145468436421f
 
#define NODE_NAME_CASE(node)   case AMDGPUISD::node: return #node;
 

Functions

static LLVM_READNONE bool fnegFoldsIntoOp (unsigned Opc)
 
static LLVM_READONLY bool opMustUseVOP3Encoding (const SDNode *N, MVT VT)
 returns true if the operation will definitely need to use a 64-bit encoding, and thus will use a VOP3 encoding regardless of the source modifiers. More...
 
static LLVM_READONLY bool hasSourceMods (const SDNode *N)
 
static SDValue extractF64Exponent (SDValue Hi, const SDLoc &SL, SelectionDAG &DAG)
 
static SDValue getLog2EVal (SelectionDAG &DAG, const SDLoc &SL, EVT VT)
 
static bool isCtlzOpc (unsigned Opc)
 
static bool isCttzOpc (unsigned Opc)
 
static bool isU24 (SDValue Op, SelectionDAG &DAG)
 
static bool isI24 (SDValue Op, SelectionDAG &DAG)
 
static SDValue simplifyI24 (SDNode *Node24, TargetLowering::DAGCombinerInfo &DCI)
 
template<typename IntTy >
static SDValue constantFoldBFE (SelectionDAG &DAG, IntTy Src0, uint32_t Offset, uint32_t Width, const SDLoc &DL)
 
static bool hasVolatileUser (SDNode *Val)
 
static MemSDNodefindMemSDNode (SDNode *N)
 
static SDValue getMul24 (SelectionDAG &DAG, const SDLoc &SL, SDValue N0, SDValue N1, unsigned Size, bool Signed)
 
static bool isNegativeOne (SDValue Val)
 
static SDValue distributeOpThroughSelect (TargetLowering::DAGCombinerInfo &DCI, unsigned Op, const SDLoc &SL, SDValue Cond, SDValue N1, SDValue N2)
 
static SDValue foldFreeOpFromSelect (TargetLowering::DAGCombinerInfo &DCI, SDValue N)
 
static bool isInv2Pi (const APFloat &APF)
 
static unsigned inverseMinMax (unsigned Opc)
 
static int getOrCreateFixedStackObject (MachineFrameInfo &MFI, unsigned Size, int64_t Offset)
 

Detailed Description

This is the parent TargetLowering class for hardware code gen targets.

Definition in file AMDGPUISelLowering.cpp.

Macro Definition Documentation

◆ AMDGPU_LN10_F

#define AMDGPU_LN10_F   2.30258509299404568401799145468436421f

Definition at line 17 of file AMDGPUISelLowering.cpp.

Referenced by llvm::AMDGPUTargetLowering::LowerOperation().

◆ AMDGPU_LN2_F

#define AMDGPU_LN2_F   0.693147180559945309417232121458176568f

Definition at line 16 of file AMDGPUISelLowering.cpp.

Referenced by llvm::AMDGPUTargetLowering::LowerOperation().

◆ AMDGPU_LOG2E_F

#define AMDGPU_LOG2E_F   1.44269504088896340735992468100189214f

Definition at line 15 of file AMDGPUISelLowering.cpp.

Referenced by llvm::AMDGPUTargetLowering::LowerOperation().

◆ NODE_NAME_CASE

#define NODE_NAME_CASE (   node)    case AMDGPUISD::node: return #node;

Function Documentation

◆ constantFoldBFE()

template<typename IntTy >
static SDValue constantFoldBFE ( SelectionDAG DAG,
IntTy  Src0,
uint32_t  Offset,
uint32_t  Width,
const SDLoc DL 
)
static

Definition at line 2810 of file AMDGPUISelLowering.cpp.

References llvm::SelectionDAG::getConstant(), and llvm::MVT::i32.

◆ distributeOpThroughSelect()

static SDValue distributeOpThroughSelect ( TargetLowering::DAGCombinerInfo DCI,
unsigned  Op,
const SDLoc SL,
SDValue  Cond,
SDValue  N1,
SDValue  N2 
)
static

Definition at line 3517 of file AMDGPUISelLowering.cpp.

◆ extractF64Exponent()

static SDValue extractF64Exponent ( SDValue  Hi,
const SDLoc SL,
SelectionDAG DAG 
)
static

◆ findMemSDNode()

static MemSDNode* findMemSDNode ( SDNode N)
static

◆ fnegFoldsIntoOp()

static LLVM_READNONE bool fnegFoldsIntoOp ( unsigned  Opc)
static

◆ foldFreeOpFromSelect()

static SDValue foldFreeOpFromSelect ( TargetLowering::DAGCombinerInfo DCI,
SDValue  N 
)
static

◆ getLog2EVal()

static SDValue getLog2EVal ( SelectionDAG DAG,
const SDLoc SL,
EVT  VT 
)
static

◆ getMul24()

static SDValue getMul24 ( SelectionDAG DAG,
const SDLoc SL,
SDValue  N0,
SDValue  N1,
unsigned  Size,
bool  Signed 
)
static

◆ getOrCreateFixedStackObject()

static int getOrCreateFixedStackObject ( MachineFrameInfo MFI,
unsigned  Size,
int64_t  Offset 
)
static

◆ hasSourceMods()

static LLVM_READONLY bool hasSourceMods ( const SDNode N)
static

◆ hasVolatileUser()

static bool hasVolatileUser ( SDNode Val)
static

◆ inverseMinMax()

static unsigned inverseMinMax ( unsigned  Opc)
static

◆ isCtlzOpc()

static bool isCtlzOpc ( unsigned  Opc)
static

◆ isCttzOpc()

static bool isCttzOpc ( unsigned  Opc)
static

◆ isI24()

static bool isI24 ( SDValue  Op,
SelectionDAG DAG 
)
static

◆ isInv2Pi()

static bool isInv2Pi ( const APFloat APF)
static

◆ isNegativeOne()

static bool isNegativeOne ( SDValue  Val)
static

◆ isU24()

static bool isU24 ( SDValue  Op,
SelectionDAG DAG 
)
static

◆ opMustUseVOP3Encoding()

static LLVM_READONLY bool opMustUseVOP3Encoding ( const SDNode N,
MVT  VT 
)
static

returns true if the operation will definitely need to use a 64-bit encoding, and thus will use a VOP3 encoding regardless of the source modifiers.

Definition at line 551 of file AMDGPUISelLowering.cpp.

References llvm::MVT::f64, llvm::SDNode::getNumOperands(), and LLVM_READONLY.

Referenced by llvm::AMDGPUTargetLowering::allUsesHaveSourceMods().

◆ simplifyI24()

static SDValue simplifyI24 ( SDNode Node24,
TargetLowering::DAGCombinerInfo DCI 
)
static