131 flattened_thread_id_in_group)
165 quad_read_across_diagonal)
174 resource_getbasepointer)
187 resource_samplecmplevelzero)
191 resource_handlefrombinding)
193 resource_handlefromimplicitbinding)
195 resource_handlefromheap)
197 resource_nonuniformindex)
201 all_memory_barrier_with_group_sync)
204 device_memory_barrier_with_group_sync)
207 group_memory_barrier_with_group_sync)
208 llvm::Intrinsic::ID getBarrierByMemoryTypeIntrinsic() {
209 assert(getArch() == llvm::Triple::dxil &&
210 "Barrier by memory type is only supported for DXIL");
211 return llvm::Intrinsic::dx_barrier_by_memory_type;
214 assert(getArch() == llvm::Triple::dxil &&
215 "Barrier by memory handle is only supported for DXIL");
216 return llvm::Intrinsic::dx_barrier_by_memory_handle;
221 resource_getdimensions_levels_xy)
226 resource_calculate_lod_unclamped)
244 HLSLAppliedSemanticAttr *Semantic,
246 llvm::Triple::EnvironmentType Stage,
std::optional<
unsigned> Index,
251 HLSLAppliedSemanticAttr *Semantic,
253 llvm::Triple::EnvironmentType Stage,
254 std::optional<
unsigned> Index,
256 llvm::
hlsl::InterpolationMode InterpMode);
266 HLSLAppliedSemanticAttr *Semantic,
268 llvm::
hlsl::InterpolationMode InterpMode);
277 llvm::
hlsl::InterpolationModifier Modifiers);
285 llvm::
hlsl::InterpolationModifier Modifiers);
293 llvm::
hlsl::InterpolationModifier Modifiers =
302 llvm::
hlsl::InterpolationModifier Modifiers =
330 llvm::StructType *LayoutTy);
333 std::optional<LValue>
339 std::optional<LValue>
345 llvm::function_ref<llvm::Value *(
bool Promote)> EmitIdxAfterBase);
359 llvm::GlobalVariable *BufGV,
362 llvm::GlobalVariable *GV);
364 llvm::Value *emitSPIRVUserSemanticLoad(
366 HLSLAppliedSemanticAttr *Semantic, std::optional<unsigned> Index,
367 llvm::hlsl::InterpolationMode InterpMode);
368 llvm::Value *emitDXILUserSemanticLoad(llvm::IRBuilder<> &B, llvm::Type *
Type,
370 HLSLAppliedSemanticAttr *Semantic,
371 std::optional<unsigned> Index,
373 llvm::Value *emitUserSemanticLoad(llvm::IRBuilder<> &B, llvm::Type *
Type,
375 HLSLAppliedSemanticAttr *Semantic,
376 std::optional<unsigned> Index,
378 llvm::hlsl::InterpolationMode InterpMode);
380 void emitSPIRVUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
382 HLSLAppliedSemanticAttr *Semantic,
383 std::optional<unsigned> Index,
384 llvm::hlsl::InterpolationMode InterpMode);
385 void emitDXILUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
387 HLSLAppliedSemanticAttr *Semantic,
388 std::optional<unsigned> Index,
390 void emitUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
392 HLSLAppliedSemanticAttr *Semantic,
393 std::optional<unsigned> Index,
395 llvm::hlsl::InterpolationMode InterpMode);
401 llvm::Triple::ArchType getArch();
403 llvm::DenseMap<const clang::RecordType *, llvm::StructType *> LayoutTypes;
404 unsigned SPIRVLastAssignedInputSemanticLocation = 0;
405 unsigned SPIRVLastAssignedOutputSemanticLocation = 0;
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...