|
LLVM 24.0.0git
|
This file contains NVVM-specific IR verification logic. More...
#include "VerifierInternal.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/IntrinsicsNVPTX.h"#include "llvm/IR/NVVMIntrinsicUtils.h"#include "llvm/Support/FormatVariadic.h"#include "llvm/Support/MathExtras.h"#include <optional>Go to the source code of this file.
Macros | |
| #define | Check(C, ...) |
Functions | |
| static bool | isValidSPElemSize (unsigned ElemSize) |
| static bool | isValidSPIdxSize (unsigned IdxSize) |
| static bool | isValidSPRepeatFactor (unsigned RepeatFactor) |
| static bool | isValidSPDecompressFactor (unsigned NumSrc, unsigned NumTgt) |
| static std::optional< SPOperandLayout > | getSPCompressLayout (unsigned ElemSize, unsigned IdxSize, unsigned RepeatFactor) |
| static std::optional< SPOperandLayout > | getSPDecompressLayout (unsigned NumSrc, unsigned NumTgt, unsigned ElemSize, unsigned IdxSize, unsigned RepeatFactor) |
| static std::optional< SPVectorInfo > | getSPVectorInfo (Type *Ty) |
| static std::optional< unsigned > | getSPMetadataRegisters (Type *Ty) |
| static void | verifySPCompress (VerifierSupport &VS, CallBase &Call) |
| static void | verifySPDecompress (VerifierSupport &VS, CallBase &Call) |
| static bool | isSupportedFPArith (Intrinsic::ID ID, Type *Ty, APFloat::roundingMode RoundingMode) |
| static void | verifyFPArith (VerifierSupport &VS, Intrinsic::ID ID, CallBase &Call) |
Variables | |
| constexpr unsigned | MaxSPOperandRegisters = 253 |
This file contains NVVM-specific IR verification logic.
These checks are always compiled and linked as part of LLVMCore.
Definition in file VerifierNVVM.cpp.
| #define Check | ( | C, | |
| ... ) |
Definition at line 26 of file VerifierNVVM.cpp.
Referenced by verifyFPArith(), verifySPCompress(), and verifySPDecompress().
|
static |
Definition at line 81 of file VerifierNVVM.cpp.
References llvm::divideCeil(), isValidSPElemSize(), isValidSPIdxSize(), isValidSPRepeatFactor(), and MaxSPOperandRegisters.
Referenced by verifySPCompress().
|
static |
Definition at line 96 of file VerifierNVVM.cpp.
References llvm::divideCeil(), isValidSPDecompressFactor(), isValidSPElemSize(), isValidSPIdxSize(), isValidSPRepeatFactor(), and MaxSPOperandRegisters.
Referenced by verifySPDecompress().
Definition at line 132 of file VerifierNVVM.cpp.
References llvm::dyn_cast().
Referenced by verifySPCompress(), and verifySPDecompress().
|
static |
Definition at line 117 of file VerifierNVVM.cpp.
References llvm::divideCeil(), and llvm::dyn_cast().
Referenced by verifySPCompress(), and verifySPDecompress().
|
static |
Definition at line 206 of file VerifierNVVM.cpp.
References llvm::Type::BFloatTyID, llvm::Type::DoubleTyID, llvm::dyn_cast(), llvm::Type::FloatTyID, llvm::nvvm::FPArithIsRelu(), llvm::nvvm::FPArithIsSaturating(), llvm::nvvm::FPArithShouldFTZ(), llvm::Type::HalfTyID, and llvm::APFloatBase::rmNearestTiesToEven.
Referenced by combineIntrinsicWOChain(), and verifyFPArith().
Definition at line 67 of file VerifierNVVM.cpp.
Referenced by getSPDecompressLayout().
Definition at line 55 of file VerifierNVVM.cpp.
Referenced by getSPCompressLayout(), and getSPDecompressLayout().
Definition at line 59 of file VerifierNVVM.cpp.
Referenced by getSPCompressLayout(), and getSPDecompressLayout().
Definition at line 63 of file VerifierNVVM.cpp.
References llvm::isPowerOf2_32().
Referenced by getSPCompressLayout(), and getSPDecompressLayout().
|
static |
Definition at line 231 of file VerifierNVVM.cpp.
References Call, Check, llvm::formatv(), llvm::Intrinsic::getBaseName(), llvm::nvvm::GetRoundingModeFromImmArg(), llvm::nvvm::GetRoundingModeName(), and isSupportedFPArith().
Referenced by llvm::verifyNVVMIntrinsicCall().
|
static |
Definition at line 141 of file VerifierNVVM.cpp.
References Call, llvm::cast(), Check, llvm::Data, llvm::dyn_cast(), getSPCompressLayout(), getSPMetadataRegisters(), and getSPVectorInfo().
Referenced by llvm::verifyNVVMIntrinsicCall().
|
static |
Definition at line 172 of file VerifierNVVM.cpp.
References Call, llvm::cast(), Check, llvm::Data, getSPDecompressLayout(), getSPMetadataRegisters(), and getSPVectorInfo().
Referenced by llvm::verifyNVVMIntrinsicCall().
|
constexpr |
Definition at line 53 of file VerifierNVVM.cpp.
Referenced by getSPCompressLayout(), and getSPDecompressLayout().