[Mlir-commits] [mlir] 81dd3a4 - [mlir][spirv] Fix coop matrix getExtension

Thomas Raoux llvmlistbot at llvm.org
Tue Jun 2 16:33:31 PDT 2020


Author: Thomas Raoux
Date: 2020-06-02T16:32:31-07:00
New Revision: 81dd3a47189ec2e2c83d5948748dcfadb9463923

URL: https://github.com/llvm/llvm-project/commit/81dd3a47189ec2e2c83d5948748dcfadb9463923
DIFF: https://github.com/llvm/llvm-project/commit/81dd3a47189ec2e2c83d5948748dcfadb9463923.diff

LOG: [mlir][spirv] Fix coop matrix getExtension

Stack variable was being used beyond its lifetime.

Differential Revision: https://reviews.llvm.org/D80948

Added: 
    

Modified: 
    mlir/lib/Dialect/SPIRV/SPIRVTypes.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Dialect/SPIRV/SPIRVTypes.cpp b/mlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
index 4ba17f3a1240..0226f5117540 100644
--- a/mlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
+++ b/mlir/lib/Dialect/SPIRV/SPIRVTypes.cpp
@@ -335,14 +335,18 @@ void CooperativeMatrixNVType::getExtensions(
     SPIRVType::ExtensionArrayRefVector &extensions,
     Optional<StorageClass> storage) {
   getElementType().cast<SPIRVType>().getExtensions(extensions, storage);
-  extensions.push_back(Extension::SPV_NV_cooperative_matrix);
+  static const Extension exts[] = {Extension::SPV_NV_cooperative_matrix};
+  ArrayRef<Extension> ref(exts, llvm::array_lengthof(exts));
+  extensions.push_back(ref);
 }
 
 void CooperativeMatrixNVType::getCapabilities(
     SPIRVType::CapabilityArrayRefVector &capabilities,
     Optional<StorageClass> storage) {
   getElementType().cast<SPIRVType>().getCapabilities(capabilities, storage);
-  capabilities.push_back(Capability::CooperativeMatrixNV);
+  static const Capability caps[] = {Capability::CooperativeMatrixNV};
+  ArrayRef<Capability> ref(caps, llvm::array_lengthof(caps));
+  capabilities.push_back(ref);
 }
 
 //===----------------------------------------------------------------------===//


        


More information about the Mlir-commits mailing list