129 flattened_thread_id_in_group)
160 quad_read_across_diagonal)
169 resource_getbasepointer)
182 resource_samplecmplevelzero)
186 resource_handlefrombinding)
188 resource_handlefromimplicitbinding)
190 resource_nonuniformindex)
194 all_memory_barrier_with_group_sync)
197 device_memory_barrier_with_group_sync)
200 group_memory_barrier_with_group_sync)
204 resource_getdimensions_levels_xy)
209 resource_calculate_lod_unclamped)
220 using SemanticSignatures =
228 HLSLAppliedSemanticAttr *Semantic,
229 std::optional<
unsigned> Index,
230 SemanticSignatures &Signature);
234 HLSLAppliedSemanticAttr *Semantic,
235 std::optional<
unsigned> Index,
236 SemanticSignatures &Signature);
242 HLSLAppliedSemanticAttr *Semantic,
243 SemanticSignatures &Signature);
248 HLSLAppliedSemanticAttr *Semantic,
249 SemanticSignatures &Signature);
257 SemanticSignatures &Signature);
264 SemanticSignatures &Signature);
271 SemanticSignatures &Signature);
278 SemanticSignatures &Signature);
306 llvm::StructType *LayoutTy);
309 std::optional<LValue>
315 std::optional<LValue>
321 llvm::function_ref<llvm::Value *(
bool Promote)> EmitIdxAfterBase);
335 llvm::GlobalVariable *BufGV,
338 llvm::GlobalVariable *GV);
340 llvm::GlobalVariable *GV,
341 HLSLResourceBindingAttr *RBA);
343 llvm::Value *emitSPIRVUserSemanticLoad(llvm::IRBuilder<> &B,
347 HLSLAppliedSemanticAttr *Semantic,
348 std::optional<unsigned> Index);
349 llvm::Value *emitDXILUserSemanticLoad(llvm::IRBuilder<> &B, llvm::Type *
Type,
351 HLSLAppliedSemanticAttr *Semantic,
352 std::optional<unsigned> Index,
353 SemanticSignatures &Signature);
354 llvm::Value *emitUserSemanticLoad(llvm::IRBuilder<> &B,
357 HLSLAppliedSemanticAttr *Semantic,
358 std::optional<unsigned> Index,
359 SemanticSignatures &Signature);
361 void emitSPIRVUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
363 HLSLAppliedSemanticAttr *Semantic,
364 std::optional<unsigned> Index);
365 void emitDXILUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
367 HLSLAppliedSemanticAttr *Semantic,
368 std::optional<unsigned> Index,
369 SemanticSignatures &Signature);
370 void emitUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
372 HLSLAppliedSemanticAttr *Semantic,
373 std::optional<unsigned> Index,
374 SemanticSignatures &Signature);
380 llvm::Triple::ArchType getArch();
382 llvm::DenseMap<const clang::RecordType *, llvm::StructType *> LayoutTypes;
383 unsigned SPIRVLastAssignedInputSemanticLocation = 0;
384 unsigned SPIRVLastAssignedOutputSemanticLocation = 0;
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...