Procházet zdrojové kódy

[spirv] Creator of a function shouldn't know its result-id.

Ehsan Nasiri před 6 roky
rodič
revize
507d0ed4ba

+ 1 - 1
tools/clang/include/clang/SPIRV/SpirvFunction.h

@@ -24,7 +24,7 @@ class SpirvVisitor;
 /// The class representing a SPIR-V function in memory.
 class SpirvFunction {
 public:
-  SpirvFunction(QualType astReturnType, SpirvType *fnSpirvType, uint32_t id,
+  SpirvFunction(QualType astReturnType, SpirvType *fnSpirvType,
                 spv::FunctionControlMask, SourceLocation,
                 llvm::StringRef name = "");
   ~SpirvFunction() = default;

+ 1 - 1
tools/clang/lib/SPIRV/DeclResultIdMapper.cpp

@@ -879,7 +879,7 @@ SpirvFunction *DeclResultIdMapper::getOrRegisterFn(const FunctionDecl *fn) {
   (void)getTypeAndCreateCounterForPotentialAliasVar(fn, &isAlias);
 
   SpirvFunction *spirvFunction = new (spvContext) SpirvFunction(
-      fn->getReturnType(), /*functionType*/ nullptr, /*id*/ 0,
+      fn->getReturnType(), /*functionType*/ nullptr,
       spv::FunctionControlMask::MaskNone, fn->getLocation(), fn->getName());
 
   // No need to dereference to get the pointer. Function returns that are

+ 1 - 1
tools/clang/lib/SPIRV/SpirvBuilder.cpp

@@ -38,7 +38,7 @@ SpirvFunction *SpirvBuilder::beginFunction(QualType returnType,
     function->setFunctionName(funcName);
   } else {
     function = new (context)
-        SpirvFunction(returnType, functionType, /*id*/ 0,
+        SpirvFunction(returnType, functionType,
                       spv::FunctionControlMask::MaskNone, loc, funcName);
   }
 

+ 2 - 2
tools/clang/lib/SPIRV/SpirvFunction.cpp

@@ -15,9 +15,9 @@ namespace clang {
 namespace spirv {
 
 SpirvFunction::SpirvFunction(QualType returnType, SpirvType *functionType,
-                             uint32_t id, spv::FunctionControlMask control,
+                             spv::FunctionControlMask control,
                              SourceLocation loc, llvm::StringRef name)
-    : functionId(id), astReturnType(returnType), returnType(nullptr),
+    : functionId(0), astReturnType(returnType), returnType(nullptr),
       returnTypeId(0), fnType(functionType), fnTypeId(0),
       functionControl(control), functionLoc(loc), functionName(name) {}