MCPcopy Create free account
hub / github.com/KhronosGroup/SPIRV-Tools / MemoryPass

Function MemoryPass

source/val/validate_memory.cpp:3480–3556  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3478} // namespace
3479
3480spv_result_t MemoryPass(ValidationState_t& _, const Instruction* inst) {
3481 switch (inst->opcode()) {
3482 case spv::Op::OpVariable:
3483 case spv::Op::OpUntypedVariableKHR:
3484 return ValidateVariable(_, inst);
3485 case spv::Op::OpBufferPointerEXT:
3486 return ValidateBufferPointerEXT(_, inst);
3487 case spv::Op::OpLoad:
3488 return ValidateLoad(_, inst);
3489 case spv::Op::OpStore:
3490 return ValidateStore(_, inst);
3491 case spv::Op::OpCopyMemory:
3492 case spv::Op::OpCopyMemorySized:
3493 return ValidateCopyMemory(_, inst);
3494 case spv::Op::OpPtrAccessChain:
3495 case spv::Op::OpUntypedPtrAccessChainKHR:
3496 case spv::Op::OpUntypedInBoundsPtrAccessChainKHR:
3497 return ValidatePtrAccessChain(_, inst);
3498 case spv::Op::OpAccessChain:
3499 case spv::Op::OpInBoundsAccessChain:
3500 case spv::Op::OpInBoundsPtrAccessChain:
3501 case spv::Op::OpUntypedAccessChainKHR:
3502 case spv::Op::OpUntypedInBoundsAccessChainKHR:
3503 return ValidateAccessChain(_, inst);
3504 case spv::Op::OpRawAccessChainNV:
3505 return ValidateRawAccessChain(_, inst);
3506 case spv::Op::OpArrayLength:
3507 case spv::Op::OpUntypedArrayLengthKHR:
3508 return ValidateArrayLength(_, inst);
3509 case spv::Op::OpCooperativeMatrixLoadNV:
3510 case spv::Op::OpCooperativeMatrixStoreNV:
3511 return ValidateCooperativeMatrixLoadStoreNV(_, inst);
3512 case spv::Op::OpCooperativeMatrixLengthKHR:
3513 return ValidateCooperativeMatrixLength(_, inst, true);
3514 case spv::Op::OpCooperativeMatrixLengthNV:
3515 return ValidateCooperativeMatrixLength(_, inst, false);
3516 case spv::Op::OpCooperativeMatrixLoadKHR:
3517 case spv::Op::OpCooperativeMatrixStoreKHR:
3518 return ValidateCooperativeMatrixLoadStoreKHR(_, inst);
3519 case spv::Op::OpCooperativeMatrixLoadTensorNV:
3520 case spv::Op::OpCooperativeMatrixStoreTensorNV:
3521 return ValidateCooperativeMatrixLoadStoreTensorNV(_, inst);
3522 case spv::Op::OpCooperativeVectorLoadNV:
3523 case spv::Op::OpCooperativeVectorStoreNV:
3524 return ValidateCooperativeVectorLoadStoreNV(_, inst);
3525 case spv::Op::OpCooperativeVectorOuterProductAccumulateNV:
3526 return ValidateCooperativeVectorOuterProductNV(_, inst);
3527 case spv::Op::OpCooperativeVectorReduceSumAccumulateNV:
3528 return ValidateCooperativeVectorReduceSumNV(_, inst);
3529 case spv::Op::OpCooperativeVectorMatrixMulNV:
3530 case spv::Op::OpCooperativeVectorMatrixMulAddNV:
3531 return ValidateCooperativeVectorMatrixMulNV(_, inst);
3532 case spv::Op::OpPtrEqual:
3533 case spv::Op::OpPtrNotEqual:
3534 case spv::Op::OpPtrDiff:
3535 return ValidatePtrComparison(_, inst);
3536 case spv::Op::OpImageTexelPointer:
3537 case spv::Op::OpGenericPtrMemSemantics:

Calls 15

ValidateVariableFunction · 0.85
ValidateBufferPointerEXTFunction · 0.85
ValidateLoadFunction · 0.85
ValidateStoreFunction · 0.85
ValidateCopyMemoryFunction · 0.85
ValidatePtrAccessChainFunction · 0.85
ValidateAccessChainFunction · 0.85
ValidateRawAccessChainFunction · 0.85
ValidateArrayLengthFunction · 0.85

Tested by

no test coverage detected