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 =
227 HLSLAppliedSemanticAttr *Semantic,
229 llvm::Triple::EnvironmentType Stage,
std::optional<
unsigned> Index,
230 SemanticSignatures &Signature);
234 HLSLAppliedSemanticAttr *Semantic,
236 llvm::Triple::EnvironmentType Stage,
237 std::optional<
unsigned> Index,
238 SemanticSignatures &Signature);
244 HLSLAppliedSemanticAttr *Semantic,
245 SemanticSignatures &Signature);
250 HLSLAppliedSemanticAttr *Semantic,
251 SemanticSignatures &Signature);
259 SemanticSignatures &Signature);
266 SemanticSignatures &Signature);
273 SemanticSignatures &Signature);
280 SemanticSignatures &Signature);
308 llvm::StructType *LayoutTy);
311 std::optional<LValue>
317 std::optional<LValue>
323 llvm::function_ref<llvm::Value *(
bool Promote)> EmitIdxAfterBase);
337 llvm::GlobalVariable *BufGV,
340 llvm::GlobalVariable *GV);
342 llvm::GlobalVariable *GV,
343 HLSLResourceBindingAttr *RBA);
345 llvm::Value *emitSPIRVUserSemanticLoad(llvm::IRBuilder<> &B,
349 HLSLAppliedSemanticAttr *Semantic,
350 std::optional<unsigned> Index);
351 llvm::Value *emitDXILUserSemanticLoad(llvm::IRBuilder<> &B, llvm::Type *
Type,
353 HLSLAppliedSemanticAttr *Semantic,
354 std::optional<unsigned> Index,
355 SemanticSignatures &Signature);
356 llvm::Value *emitUserSemanticLoad(llvm::IRBuilder<> &B,
359 HLSLAppliedSemanticAttr *Semantic,
360 std::optional<unsigned> Index,
361 SemanticSignatures &Signature);
363 void emitSPIRVUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
365 HLSLAppliedSemanticAttr *Semantic,
366 std::optional<unsigned> Index);
367 void emitDXILUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
369 HLSLAppliedSemanticAttr *Semantic,
370 std::optional<unsigned> Index,
371 SemanticSignatures &Signature);
372 void emitUserSemanticStore(llvm::IRBuilder<> &B, llvm::Value *Source,
374 HLSLAppliedSemanticAttr *Semantic,
375 std::optional<unsigned> Index,
376 SemanticSignatures &Signature);
382 llvm::Triple::ArchType getArch();
384 llvm::DenseMap<const clang::RecordType *, llvm::StructType *> LayoutTypes;
385 unsigned SPIRVLastAssignedInputSemanticLocation = 0;
386 unsigned SPIRVLastAssignedOutputSemanticLocation = 0;
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...