|
LLVM 23.0.0git
|
#include "SPIRVEmitIntrinsics.h"#include "SPIRV.h"#include "SPIRVBuiltins.h"#include "SPIRVSubtarget.h"#include "SPIRVTargetMachine.h"#include "SPIRVUtils.h"#include "llvm/ADT/DenseSet.h"#include "llvm/ADT/StringSet.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/InstVisitor.h"#include "llvm/IR/IntrinsicsSPIRV.h"#include "llvm/IR/PatternMatch.h"#include "llvm/IR/TypedPointerType.h"#include "llvm/IR/Value.h"#include "llvm/Support/CommandLine.h"#include "llvm/Transforms/Utils/Local.h"#include <cassert>#include <optional>#include <queue>#include <unordered_set>#include "SPIRVGenTables.inc"Go to the source code of this file.
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
| namespace | llvm::SPIRV |
Macros | |
| #define | GET_BuiltinGroup_DECL |
Variables | |
| static cl::opt< bool > | SpirvEmitOpNames ("spirv-emit-op-names", cl::desc("Emit OpName for all instructions"), cl::init(false)) |
| #define GET_BuiltinGroup_DECL |
Definition at line 66 of file SPIRVEmitIntrinsics.cpp.
|
static |
Definition at line 1743 of file SPIRVEmitIntrinsics.cpp.
References B(), createSaturatedConversionDecoration(), I, llvm::PatternMatch::m_AnyIntrinsic(), and llvm::PatternMatch::match().
|
static |
Definition at line 1712 of file SPIRVEmitIntrinsics.cpp.
References B(), llvm::MDNode::get(), llvm::MetadataAsValue::get(), I, and setInsertPointAfterDef().
Referenced by createRoundingModeDecoration(), and createSaturatedConversionDecoration().
|
static |
Definition at line 1720 of file SPIRVEmitIntrinsics.cpp.
References B(), createDecorationIntrinsic(), llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::Type::getInt32Ty(), I, and llvm::Int32Ty.
|
static |
Definition at line 1733 of file SPIRVEmitIntrinsics.cpp.
References B(), createDecorationIntrinsic(), llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::Type::getInt32Ty(), I, and llvm::Int32Ty.
Referenced by addSaturatedDecorationToIntrinsic().
|
static |
Definition at line 478 of file SPIRVEmitIntrinsics.cpp.
References B(), llvm::dyn_cast(), F, llvm::MDNode::get(), llvm::MDString::get(), llvm::MetadataAsValue::get(), I, llvm::isa(), reportFatalOnTokenType(), setInsertPointAfterDef(), and SpirvEmitOpNames.
|
inlinestatic |
Definition at line 1179 of file SPIRVEmitIntrinsics.cpp.
References llvm::dyn_cast(), llvm::SPIRVGlobalRegistry::findDeducedElementType(), llvm::getTypedPointerWrapper(), I, and llvm::isUntypedPointerTy().
|
static |
Definition at line 2746 of file SPIRVEmitIntrinsics.cpp.
References assert(), llvm::BitWidth, llvm::SPIRV::FPFastMathDefaultInfoVector::computeFPFastMathDefaultInfoVecIndex(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
|
static |
Definition at line 3105 of file SPIRVEmitIntrinsics.cpp.
References F, llvm::SPIRVGlobalRegistry::findDeducedElementType(), llvm::FunctionType::get(), llvm::getPointerAddressSpace(), llvm::Value::getType(), llvm::getTypedPointerWrapper(), llvm::Type::isPointerTy(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
static |
Definition at line 2724 of file SPIRVEmitIntrinsics.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), and llvm::Type::getHalfTy().
|
static |
Definition at line 727 of file SPIRVEmitIntrinsics.cpp.
References llvm::Function::getContext(), llvm::Type::getInt8Ty(), OpIdx, and llvm::StringRef::starts_with().
| INITIALIZE_PASS | ( | SPIRVEmitIntrinsics | , |
| "spirv-emit-intrinsics" | , | ||
| "SPIRV emit intrinsics" | , | ||
| false | , | ||
| false | ) const |
Definition at line 430 of file SPIRVEmitIntrinsics.cpp.
References const, I, inline, llvm::PatternMatch::m_Intrinsic(), and llvm::PatternMatch::match().
|
static |
Definition at line 2386 of file SPIRVEmitIntrinsics.cpp.
References llvm::dyn_cast(), llvm::CallBase::getIntrinsicID(), and I.
Referenced by precededByAbortIntrinsic().
Definition at line 442 of file SPIRVEmitIntrinsics.cpp.
References llvm::isa().
|
static |
Definition at line 1839 of file SPIRVEmitIntrinsics.cpp.
References GEP, llvm::PatternMatch::m_Zero(), and llvm::PatternMatch::match().
Definition at line 533 of file SPIRVEmitIntrinsics.cpp.
References F, llvm::isa(), llvm::isPointerTy(), and llvm::CallingConv::SPIR_KERNEL.
|
static |
Definition at line 437 of file SPIRVEmitIntrinsics.cpp.
References I, and llvm::isa().
|
static |
Definition at line 2404 of file SPIRVEmitIntrinsics.cpp.
References assert(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), I, II, isAbortCall(), llvm::Instruction::isDebugOrPseudoInst(), and llvm::none_of().
|
inlinestatic |
Definition at line 471 of file SPIRVEmitIntrinsics.cpp.
References I, and llvm::report_fatal_error().
Referenced by emitAssignName().
|
static |
Definition at line 465 of file SPIRVEmitIntrinsics.cpp.
References I, llvm::PatternMatch::m_AnyIntrinsic(), and llvm::PatternMatch::match().
|
inlinestatic |
Definition at line 540 of file SPIRVEmitIntrinsics.cpp.
References llvm::dyn_cast(), llvm::SPIRVGlobalRegistry::findMutated(), llvm::CallBase::getCalledFunction(), I, llvm::CallBase::isIndirectCall(), llvm::CallBase::isInlineAsm(), and llvm::Function::isIntrinsic().
|
static |
Definition at line 457 of file SPIRVEmitIntrinsics.cpp.
Referenced by createDecorationIntrinsic(), and emitAssignName().
|
static |
Definition at line 450 of file SPIRVEmitIntrinsics.cpp.
References B(), I, and llvm::isa().
|
static |
Definition at line 2432 of file SPIRVEmitIntrinsics.cpp.
References llvm::Function::begin(), llvm::StringSet< AllocatorTy >::contains(), F, and llvm::Value::getName().