|
LLVM 22.0.0git
|
#include "NVPTXISelDAGToDAG.h"#include "NVPTX.h"#include "NVPTXUtilities.h"#include "llvm/ADT/APInt.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/CodeGen/ISDOpcodes.h"#include "llvm/CodeGen/SelectionDAG.h"#include "llvm/CodeGen/SelectionDAGNodes.h"#include "llvm/IR/GlobalValue.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicsNVPTX.h"#include "llvm/IR/NVVMIntrinsicUtils.h"#include "llvm/Support/AtomicOrdering.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/FormatVariadic.h"#include "llvm/Support/MathExtras.h"#include <optional>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "nvptx-isel" |
| #define | PASS_NAME "NVPTX DAG->DAG Pattern Instruction Selection" |
| #define | TCGEN05_LD_OPCODE(SHAPE, NUM) |
| #define | CP_ASYNC_BULK_TENSOR_OPCODE(dir, dim, mode, is_s32, suffix) |
| #define | GET_CP_ASYNC_BULK_TENSOR_OPCODE_S2G_RED(dim, mode, is_ch, is_s32) |
| #define | TCGEN05_ST_OPCODE(SHAPE, NUM) |
Variables | |
| static cl::opt< bool > | EnableRsqrtOpt ("nvptx-rsqrt-approx-opt", cl::init(true), cl::Hidden, cl::desc("Enable reciprocal sqrt optimization")) |
| static cl::opt< bool > | EnableMADWide ("nvptx-mad-wide-opt", cl::init(false), cl::Hidden, cl::desc("Enable MAD wide optimization")) |
| #define CP_ASYNC_BULK_TENSOR_OPCODE | ( | dir, | |
| dim, | |||
| mode, | |||
| is_s32, | |||
| suffix ) |
Definition at line 1865 of file NVPTXISelDAGToDAG.cpp.
| #define DEBUG_TYPE "nvptx-isel" |
Definition at line 34 of file NVPTXISelDAGToDAG.cpp.
| #define GET_CP_ASYNC_BULK_TENSOR_OPCODE_S2G_RED | ( | dim, | |
| mode, | |||
| is_ch, | |||
| is_s32 ) |
Definition at line 1870 of file NVPTXISelDAGToDAG.cpp.
Referenced by GetCpAsyncBulkTensorS2GReductionOpcode().
| #define PASS_NAME "NVPTX DAG->DAG Pattern Instruction Selection" |
Definition at line 35 of file NVPTXISelDAGToDAG.cpp.
| #define TCGEN05_LD_OPCODE | ( | SHAPE, | |
| NUM ) |
Definition at line 198 of file NVPTXISelDAGToDAG.cpp.
Referenced by getTcgen05LdOpcode().
| #define TCGEN05_ST_OPCODE | ( | SHAPE, | |
| NUM ) |
Definition at line 1941 of file NVPTXISelDAGToDAG.cpp.
Referenced by getTcgen05StOpcode().
|
static |
Definition at line 1071 of file NVPTXISelDAGToDAG.cpp.
References DL, llvm::dyn_cast(), llvm::SDNode::getOperand(), llvm::SDValue::getOperand(), llvm::APInt::getSExtValue(), llvm::SelectionDAG::getSignedTargetConstant(), isAddLike(), llvm::APInt::sext(), and stripAssertAlign().
Referenced by selectADDR().
|
static |
Definition at line 787 of file NVPTXISelDAGToDAG.cpp.
References llvm::NVPTX::Global, llvm::NVPTXSubtarget::hasLDG(), and N.
|
static |
Definition at line 495 of file NVPTXISelDAGToDAG.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_CONST, llvm::NVPTXAS::ADDRESS_SPACE_GENERIC, llvm::NVPTXAS::ADDRESS_SPACE_GLOBAL, llvm::NVPTXAS::ADDRESS_SPACE_LOCAL, llvm::NVPTXAS::ADDRESS_SPACE_PARAM, llvm::NVPTXAS::ADDRESS_SPACE_SHARED, llvm::NVPTXAS::ADDRESS_SPACE_SHARED_CLUSTER, llvm::NVPTX::Const, llvm::NVPTX::Generic, llvm::NVPTX::Global, llvm::NVPTX::Local, llvm::NVPTX::Param, llvm::NVPTX::Shared, and llvm::NVPTX::SharedCluster.
Referenced by llvm::NVPTXDAGToDAGISel::getAddrSpace().
|
static |
Definition at line 1874 of file NVPTXISelDAGToDAG.cpp.
References D(), GET_CP_ASYNC_BULK_TENSOR_OPCODE_S2G_RED, and llvm_unreachable.
|
static |
Definition at line 795 of file NVPTXISelDAGToDAG.cpp.
References llvm::NVPTX::Acquire, llvm::NVPTX::AcquireRelease, llvm::NVPTX::Block, llvm::NVPTX::Cluster, llvm::NVPTX::DefaultDevice, llvm::NVPTX::Device, llvm::formatv(), llvm_unreachable, llvm::NVPTX::NotAtomic, llvm::NVPTX::Relaxed, llvm::NVPTX::RelaxedMMIO, llvm::NVPTX::Release, llvm::report_fatal_error(), llvm::NVPTX::SequentiallyConsistent, llvm::NVPTX::System, T, llvm::NVPTX::Thread, and llvm::NVPTX::Volatile.
Definition at line 1166 of file NVPTXISelDAGToDAG.cpp.
References llvm_unreachable, N, llvm::NVPTXISD::StoreV2, llvm::NVPTXISD::StoreV4, and llvm::NVPTXISD::StoreV8.
Definition at line 202 of file NVPTXISelDAGToDAG.cpp.
References llvm_unreachable, and TCGEN05_LD_OPCODE.
Definition at line 1945 of file NVPTXISelDAGToDAG.cpp.
References llvm_unreachable, and TCGEN05_ST_OPCODE.
Definition at line 1043 of file NVPTXISelDAGToDAG.cpp.
References llvm::ISD::ADD, and llvm::ISD::OR.
Referenced by accumulateOffset().
|
static |
Definition at line 1018 of file NVPTXISelDAGToDAG.cpp.
|
static |
Definition at line 1090 of file NVPTXISelDAGToDAG.cpp.
References accumulateOffset(), llvm::sampleprof::Base, llvm::Offset, and selectBaseADDR().
Referenced by llvm::NVPTXDAGToDAGISel::SelectInlineAsmMemoryOperand().
|
static |
Definition at line 1056 of file NVPTXISelDAGToDAG.cpp.
References llvm::dyn_cast(), llvm::SelectionDAG::getTargetExternalSymbol(), llvm::SelectionDAG::getTargetFrameIndex(), llvm::SelectionDAG::getTargetGlobalAddress(), N, and stripAssertAlign().
Referenced by selectADDR().
Definition at line 1048 of file NVPTXISelDAGToDAG.cpp.
References llvm::ISD::AssertAlign, and N.
Referenced by accumulateOffset(), and selectBaseADDR().
|
static |