|
LLVM 23.0.0git
|
Defines an instruction selector for the AMDGPU target. More...
#include "AMDGPUISelDAGToDAG.h"#include "AMDGPU.h"#include "AMDGPUInstrInfo.h"#include "AMDGPUSubtarget.h"#include "AMDGPUTargetMachine.h"#include "MCTargetDesc/AMDGPUMCTargetDesc.h"#include "MCTargetDesc/R600MCTargetDesc.h"#include "R600RegisterInfo.h"#include "SIISelLowering.h"#include "SIMachineFunctionInfo.h"#include "llvm/Analysis/UniformityAnalysis.h"#include "llvm/CodeGen/FunctionLoweringInfo.h"#include "llvm/CodeGen/SelectionDAG.h"#include "llvm/CodeGen/SelectionDAGISel.h"#include "llvm/CodeGen/SelectionDAGNodes.h"#include "llvm/IR/IntrinsicsAMDGPU.h"#include "llvm/InitializePasses.h"#include "llvm/Support/ErrorHandling.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "amdgpu-isel" |
Functions | |
| INITIALIZE_PASS_BEGIN (AMDGPUDAGToDAGISelLegacy, "amdgpu-isel", "AMDGPU DAG->DAG Pattern Instruction Selection", false, false) INITIALIZE_PASS_END(AMDGPUDAGToDAGISelLegacy | |
| static bool | getBaseWithOffsetUsingSplitOR (SelectionDAG &DAG, SDValue Addr, SDValue &N0, SDValue &N1) |
| static bool | isNoUnsignedWrap (SDValue Addr) |
| static bool | IsCopyFromSGPR (const SIRegisterInfo &TRI, SDValue Val) |
| static MemSDNode * | findMemSDNode (SDNode *N) |
| static SDValue | matchExtFromI32orI32 (SDValue Op, bool IsSigned, const SelectionDAG *DAG) |
| static SDValue | SelectSAddrFI (SelectionDAG *CurDAG, SDValue SAddr) |
| static SDValue | combineBallotPattern (SDValue VCMP, bool &Negate) |
| static unsigned | gwsIntrinToOpcode (unsigned IntrID) |
| static void | checkWMMAElementsModifiersF16 (BuildVectorSDNode *BV, std::function< bool(SDValue)> ModifierCheck) |
| static SDValue | matchBF16FPExtendLike (SDValue Op, bool &IsExtractHigh) |
| static std::pair< unsigned, uint8_t > | BitOp3_Op (SDValue In, SmallVectorImpl< SDValue > &Src) |
Variables | |
| amdgpu | isel |
| amdgpu AMDGPU DAG DAG Pattern Instruction | Selection |
| amdgpu AMDGPU DAG DAG Pattern Instruction | false |
Defines an instruction selector for the AMDGPU target.
Definition in file AMDGPUISelDAGToDAG.cpp.
| #define DEBUG_TYPE "amdgpu-isel" |
Definition at line 38 of file AMDGPUISelDAGToDAG.cpp.
|
static |
Definition at line 4301 of file AMDGPUISelDAGToDAG.cpp.
References llvm::ISD::AND, BitOp3_Op(), llvm::CallingConv::C, llvm::dyn_cast(), I, LHS, llvm::ISD::OR, RHS, and llvm::ISD::XOR.
|
static |
Definition at line 3870 of file AMDGPUISelDAGToDAG.cpp.
References llvm::dyn_cast(), llvm::SDNode::getNumOperands(), and llvm::SDNode::getOperand().
Definition at line 2828 of file AMDGPUISelDAGToDAG.cpp.
References assert(), llvm::cast(), Cond, llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::isBoolSGPR(), llvm::ISD::isExtOpcode(), llvm::isNullConstant(), SDValue(), llvm::ISD::SETEQ, and llvm::ISD::SETNE.
Definition at line 1836 of file AMDGPUISelDAGToDAG.cpp.
References assert(), llvm::dyn_cast(), llvm::SDValue::getNode(), llvm::isa(), llvm_unreachable, N, SDValue(), and llvm::AMDGPUTargetLowering::stripBitcast().
|
static |
Definition at line 919 of file AMDGPUISelDAGToDAG.cpp.
References llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::SDValue::getConstantOperandVal(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::isa(), llvm::SelectionDAG::isBaseWithConstantOffset(), llvm::Lo, and llvm::ISD::OR.
Definition at line 3053 of file AMDGPUISelDAGToDAG.cpp.
References llvm_unreachable.
| INITIALIZE_PASS_BEGIN | ( | AMDGPUDAGToDAGISelLegacy | , |
| "amdgpu-isel" | , | ||
| "AMDGPU DAG->DAG Pattern Instruction Selection" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 1745 of file AMDGPUISelDAGToDAG.cpp.
References llvm::cast(), llvm::ISD::CopyFromReg, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), Reg, and TRI.
Definition at line 1380 of file AMDGPUISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::SDNode::getFlags(), llvm::SDNode::getOpcode(), llvm::SDValue::getOpcode(), llvm::SDNodeFlags::hasNoUnsignedWrap(), and llvm::ISD::OR.
Definition at line 4159 of file AMDGPUISelDAGToDAG.cpp.
References llvm::ISD::AND, llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, llvm::dyn_cast(), llvm::ConstantSDNode::getZExtValue(), SDValue(), and llvm::ISD::SHL.
|
static |
Definition at line 1975 of file AMDGPUISelDAGToDAG.cpp.
References llvm::ISD::ANY_EXTEND, llvm::SDValue::getValueType(), SDValue(), llvm::ISD::SIGN_EXTEND, llvm::SelectionDAG::SignBitIsZero(), and llvm::ISD::ZERO_EXTEND.
|
static |
Definition at line 2212 of file AMDGPUISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::cast(), llvm::dyn_cast(), llvm::SelectionDAG::getMachineNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SelectionDAG::getTargetFrameIndex(), llvm::isa(), and SDValue().
| amdgpu AMDGPU DAG DAG Pattern Instruction false |
Definition at line 160 of file AMDGPUISelDAGToDAG.cpp.
| amdgpu isel |
Definition at line 159 of file AMDGPUISelDAGToDAG.cpp.
| amdgpu AMDGPU DAG DAG Pattern Instruction Selection |
Definition at line 160 of file AMDGPUISelDAGToDAG.cpp.
Referenced by llvm::logicalview::LVPatterns::addRequest(), llvm::logicalview::LVPatterns::addRequest(), llvm::logicalview::LVPatterns::addRequest(), llvm::logicalview::LVPatterns::addRequest(), llvm::logicalview::LVPatterns::addRequest(), llvm::MCContext::getCOFFSection(), llvm::TargetLoweringObjectFileCOFF::getExplicitSectionGlobal(), llvm::MCObjectFileInfo::getPseudoProbeSection(), and llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal().