clang 23.0.0git
AMDGPU.cpp File Reference
#include "CGBuiltin.h"
#include "CodeGenFunction.h"
#include "TargetInfo.h"
#include "clang/Basic/DiagnosticFrontend.h"
#include "clang/Basic/SyncScope.h"
#include "clang/Basic/TargetBuiltins.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/IR/IntrinsicsR600.h"
#include "llvm/IR/IntrinsicsSPIRV.h"
#include "llvm/IR/MemoryModelRelaxationAnnotations.h"
#include "llvm/Support/AMDGPUAddrSpace.h"
#include "llvm/Support/AtomicOrdering.h"

Go to the source code of this file.

Functions

static ValueEmitAMDGCNBallotForExec (CodeGenFunction &CGF, const CallExpr *E, llvm::Type *RegisterType, llvm::Type *ValueType, bool isExecHi)
static llvm::ValueloadTextureDescPtorAsVec8I32 (CodeGenFunction &CGF, llvm::Value *RsrcPtr)
llvm::CallInst * emitAMDGCNImageOverloadedReturnType (clang::CodeGen::CodeGenFunction &CGF, const clang::CallExpr *E, unsigned IntrinsicID, bool IsImageStore)
static ValueemitFPIntBuiltin (CodeGenFunction &CGF, const CallExpr *E, unsigned IntrinsicID)
static StringRef mapScopeToSPIRV (StringRef AMDGCNScope)
static llvm::AtomicOrdering mapCABIAtomicOrdering (unsigned AO)
static StringRef getAMDGPUSyncScopeStr (CodeGenModule &CGM, unsigned ScopeInt, llvm::AtomicOrdering AO)
static llvm::MetadataAsValue * emitScopeMD (CodeGenFunction &CGF, unsigned ScopeInt, llvm::AtomicOrdering AO=llvm::AtomicOrdering::SequentiallyConsistent)
 Convert a __MEMORY_SCOPE_* integer constant to a metadata node containing the target-specific sync scope string.
static ValueGetAMDGPUPredicate (CodeGenFunction &CGF, Twine Name)
static Intrinsic::ID getIntrinsicIDforWaveReduction (unsigned BuiltinID)

Function Documentation

◆ EmitAMDGCNBallotForExec()

Value * EmitAMDGCNBallotForExec ( CodeGenFunction & CGF,
const CallExpr * E,
llvm::Type * RegisterType,
llvm::Type * ValueType,
bool isExecHi )
static

◆ emitAMDGCNImageOverloadedReturnType()

◆ emitFPIntBuiltin()

◆ emitScopeMD()

llvm::MetadataAsValue * emitScopeMD ( CodeGenFunction & CGF,
unsigned ScopeInt,
llvm::AtomicOrdering AO = llvm::AtomicOrdering::SequentiallyConsistent )
static

Convert a __MEMORY_SCOPE_* integer constant to a metadata node containing the target-specific sync scope string.

Definition at line 400 of file AMDGPU.cpp.

References clang::CodeGen::CodeGenFunction::CGM, getAMDGPUSyncScopeStr(), and clang::CodeGen::CodeGenModule::getLLVMContext().

Referenced by clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr().

◆ GetAMDGPUPredicate()

◆ getAMDGPUSyncScopeStr()

◆ getIntrinsicIDforWaveReduction()

Intrinsic::ID getIntrinsicIDforWaveReduction ( unsigned BuiltinID)
static

Definition at line 472 of file AMDGPU.cpp.

Referenced by clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr().

◆ loadTextureDescPtorAsVec8I32()

◆ mapCABIAtomicOrdering()

llvm::AtomicOrdering mapCABIAtomicOrdering ( unsigned AO)
static

◆ mapScopeToSPIRV()

StringRef mapScopeToSPIRV ( StringRef AMDGCNScope)
inlinestatic