132 flattened_thread_id_in_group)
166 quad_read_across_diagonal)
175 resource_getbasepointer)
188 resource_samplecmplevelzero)
192 resource_handlefrombinding)
194 resource_handlefromimplicitbinding)
196 resource_handlefromheap)
198 resource_nonuniformindex)
202 all_memory_barrier_with_group_sync)
205 device_memory_barrier_with_group_sync)
208 group_memory_barrier_with_group_sync)
209 llvm::Intrinsic::ID getBarrierByMemoryTypeIntrinsic() {
210 assert(getArch() == llvm::Triple::dxil &&
211 "Barrier by memory type is only supported for DXIL");
212 return llvm::Intrinsic::dx_barrier_by_memory_type;
215 assert(getArch() == llvm::Triple::dxil &&
216 "Barrier by memory handle is only supported for DXIL");
217 return llvm::Intrinsic::dx_barrier_by_memory_handle;
222 resource_getdimensions_levels_xy)
227 resource_calculate_lod_unclamped)
245 HLSLAppliedSemanticAttr *Semantic,
247 llvm::Triple::EnvironmentType Stage,
std::optional<
unsigned> Index,
252 HLSLAppliedSemanticAttr *Semantic,
254 llvm::Triple::EnvironmentType Stage,
255 std::optional<
unsigned> Index,
262 HLSLAppliedSemanticAttr *Semantic,
268 HLSLAppliedSemanticAttr *Semantic,
278 llvm::
hlsl::InterpolationModifier Modifiers);
286 llvm::
hlsl::InterpolationModifier Modifiers);
294 llvm::
hlsl::InterpolationModifier Modifiers =
303 llvm::
hlsl::InterpolationModifier Modifiers =
332 llvm::StructType *LayoutTy);
335 std::optional<LValue>
341 std::optional<LValue>
347 llvm::function_ref<llvm::Value *(
bool Promote)> EmitIdxAfterBase);
361 llvm::GlobalVariable *BufGV,
364 llvm::GlobalVariable *GV);
366 llvm::GlobalVariable *GV,
367 HLSLResourceBindingAttr *RBA);
369 llvm::Value *emitSPIRVUserSemanticLoad(llvm::IRBuilder<> &B,
373 HLSLAppliedSemanticAttr *Semantic,
374 std::optional<unsigned> Index);
375 llvm::Value *emitDXILUserSemanticLoad(llvm::IRBuilder<> &B, llvm::Type *
Type,
377 HLSLAppliedSemanticAttr *Semantic,
378 std::optional<unsigned> Index,
380 llvm::Value *emitUserSemanticLoad(llvm::IRBuilder<> &B,
383 HLSLAppliedSemanticAttr *Semantic,
384 std::optional<unsigned> Index,
387 void emitSPIRVUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
389 HLSLAppliedSemanticAttr *Semantic,
390 std::optional<unsigned> Index);
391 void emitDXILUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
393 HLSLAppliedSemanticAttr *Semantic,
394 std::optional<unsigned> Index,
396 void emitUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
398 HLSLAppliedSemanticAttr *Semantic,
399 std::optional<unsigned> Index,
406 llvm::Triple::ArchType getArch();
408 llvm::DenseMap<const clang::RecordType *, llvm::StructType *> LayoutTypes;
409 unsigned SPIRVLastAssignedInputSemanticLocation = 0;
410 unsigned SPIRVLastAssignedOutputSemanticLocation = 0;
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...