[llvm] 8aa8c05 - [DXIL][Analysis] Collect Function properties in Metadata Analysis (#105728)

via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 31 14:56:09 PDT 2024


Author: S. Bharadwaj Yadavalli
Date: 2024-08-31T17:56:06-04:00
New Revision: 8aa8c0590c09a52737787ed7c35befa3fbede231

URL: https://github.com/llvm/llvm-project/commit/8aa8c0590c09a52737787ed7c35befa3fbede231
DIFF: https://github.com/llvm/llvm-project/commit/8aa8c0590c09a52737787ed7c35befa3fbede231.diff

LOG: [DXIL][Analysis] Collect Function properties in Metadata Analysis (#105728)

Basic infrastructure to collect Function properties in Metadata Analysis
- Add a `SmallVector` of entry properties to the metadata information.
- Add a structure to represent function properties. Currently
`numthreads` and shader kind properties of shader entry functions are
represented.

Added: 
    llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.0.ll
    llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.8.ll
    llvm/test/Analysis/DXILMetadataAnalysis/entry-properties.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-as.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs-val-ver-0.0.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-gs.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-hs.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ms.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ps.ll
    llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-vs.ll

Modified: 
    llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
    llvm/lib/Analysis/DXILMetadataAnalysis.cpp
    llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll
    llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-as.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-gs.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-hs.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-lib.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-ms.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-ps.ll
    llvm/test/CodeGen/DirectX/Metadata/shaderModel-vs.ll

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Analysis/DXILMetadataAnalysis.h b/llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
index 0515139c01aee6..ed342c28b2d78b 100644
--- a/llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
+++ b/llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
@@ -9,22 +9,34 @@
 #ifndef LLVM_ANALYSIS_DXILMETADATA_H
 #define LLVM_ANALYSIS_DXILMETADATA_H
 
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/VersionTuple.h"
 #include "llvm/TargetParser/Triple.h"
-#include <memory>
 
 namespace llvm {
 
+class Function;
 namespace dxil {
 
+struct EntryProperties {
+  const Function *Entry;
+  // Specific target shader stage may be specified for entry functions
+  Triple::EnvironmentType ShaderStage = Triple::UnknownEnvironment;
+  unsigned NumThreadsX{0}; // X component
+  unsigned NumThreadsY{0}; // Y component
+  unsigned NumThreadsZ{0}; // Z component
+
+  EntryProperties(const Function &Fn) : Entry(&Fn) {};
+};
+
 struct ModuleMetadataInfo {
   VersionTuple DXILVersion{};
   VersionTuple ShaderModelVersion{};
   Triple::EnvironmentType ShaderStage = Triple::UnknownEnvironment;
   VersionTuple ValidatorVersion{};
-
+  SmallVector<EntryProperties> EntryPropertyVec{};
   void print(raw_ostream &OS) const;
 };
 

diff  --git a/llvm/lib/Analysis/DXILMetadataAnalysis.cpp b/llvm/lib/Analysis/DXILMetadataAnalysis.cpp
index 192e151565370d..cebfe4b84dcdfb 100644
--- a/llvm/lib/Analysis/DXILMetadataAnalysis.cpp
+++ b/llvm/lib/Analysis/DXILMetadataAnalysis.cpp
@@ -8,11 +8,14 @@
 
 #include "llvm/Analysis/DXILMetadataAnalysis.h"
 #include "llvm/ADT/APInt.h"
+#include "llvm/ADT/StringExtras.h"
+#include "llvm/ADT/StringRef.h"
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/Metadata.h"
 #include "llvm/IR/Module.h"
 #include "llvm/InitializePasses.h"
+#include "llvm/Support/ErrorHandling.h"
 
 #define DEBUG_TYPE "dxil-metadata-analysis"
 
@@ -33,15 +36,54 @@ static ModuleMetadataInfo collectMetadataInfo(Module &M) {
     MMDAI.ValidatorVersion =
         VersionTuple(MajorMD->getZExtValue(), MinorMD->getZExtValue());
   }
+
+  // For all HLSL Shader functions
+  for (auto &F : M.functions()) {
+    if (!F.hasFnAttribute("hlsl.shader"))
+      continue;
+
+    EntryProperties EFP(F);
+    // Get "hlsl.shader" attribute
+    Attribute EntryAttr = F.getFnAttribute("hlsl.shader");
+    assert(EntryAttr.isValid() &&
+           "Invalid value specified for HLSL function attribute hlsl.shader");
+    StringRef EntryProfile = EntryAttr.getValueAsString();
+    Triple T("", "", "", EntryProfile);
+    EFP.ShaderStage = T.getEnvironment();
+    // Get numthreads attribute value, if one exists
+    StringRef NumThreadsStr =
+        F.getFnAttribute("hlsl.numthreads").getValueAsString();
+    if (!NumThreadsStr.empty()) {
+      SmallVector<StringRef> NumThreadsVec;
+      NumThreadsStr.split(NumThreadsVec, ',');
+      assert(NumThreadsVec.size() == 3 && "Invalid numthreads specified");
+      // Read in the three component values of numthreads
+      [[maybe_unused]] bool Success =
+          llvm::to_integer(NumThreadsVec[0], EFP.NumThreadsX, 10);
+      assert(Success && "Failed to parse X component of numthreads");
+      Success = llvm::to_integer(NumThreadsVec[1], EFP.NumThreadsY, 10);
+      assert(Success && "Failed to parse Y component of numthreads");
+      Success = llvm::to_integer(NumThreadsVec[2], EFP.NumThreadsZ, 10);
+      assert(Success && "Failed to parse Z component of numthreads");
+    }
+    MMDAI.EntryPropertyVec.push_back(EFP);
+  }
   return MMDAI;
 }
 
 void ModuleMetadataInfo::print(raw_ostream &OS) const {
   OS << "Shader Model Version : " << ShaderModelVersion.getAsString() << "\n";
   OS << "DXIL Version : " << DXILVersion.getAsString() << "\n";
-  OS << "Shader Stage : " << Triple::getEnvironmentTypeName(ShaderStage)
+  OS << "Target Shader Stage : " << Triple::getEnvironmentTypeName(ShaderStage)
      << "\n";
   OS << "Validator Version : " << ValidatorVersion.getAsString() << "\n";
+  for (const auto &EP : EntryPropertyVec) {
+    OS << " " << EP.Entry->getName() << "\n";
+    OS << "  Function Shader Stage : "
+       << Triple::getEnvironmentTypeName(EP.ShaderStage) << "\n";
+    OS << "  NumThreads: " << EP.NumThreadsX << "," << EP.NumThreadsY << ","
+       << EP.NumThreadsZ << "\n";
+  }
 }
 
 //===----------------------------------------------------------------------===//

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.0.ll b/llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.0.ll
new file mode 100644
index 00000000000000..75c05d86dc7818
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.0.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6.0-vertex"
+
+; CHECK: Shader Model Version : 6.0
+; CHECK-NEXT: DXIL Version : 1.0
+; CHECK-NEXT: Shader Stage : vertex
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:   Function Shader Stage : vertex
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="vertex" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.8.ll b/llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.8.ll
new file mode 100644
index 00000000000000..7a2cb51f9c819f
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/dxilVer-1.8.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6.8-compute"
+
+; CHECK: Shader Model Version : 6.8
+; CHECK-NEXT: DXIL Version : 1.8
+; CHECK-NEXT: Shader Stage : compute
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:   Function Shader Stage : compute
+; CHECK-NEXT: NumThreads: 1,2,1
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.numthreads"="1,2,1" "hlsl.shader"="compute" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/entry-properties.ll b/llvm/test/Analysis/DXILMetadataAnalysis/entry-properties.ll
new file mode 100644
index 00000000000000..a2c6c3a7952d41
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/entry-properties.ll
@@ -0,0 +1,36 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6.8-library"
+
+; CHECK: Shader Model Version : 6.8
+; CHECK-NEXT: DXIL Version : 1.8
+; CHECK-NEXT: Target Shader Stage : library
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry_as
+; CHECK-NEXT:   Function Shader Stage : amplification
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-NEXT: entry_ms
+; CHECK-NEXT:   Function Shader Stage : mesh
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-NEXT: entry_cs
+; CHECK-NEXT:   Function Shader Stage : compute
+; CHECK-NEXT:   NumThreads: 1,2,1
+; CHECK-EMPTY:
+
+define void @entry_as() #0 {
+entry:
+  ret void
+}
+
+define i32 @entry_ms(i32 %a) #1 {
+entry:
+  ret i32 %a
+}
+
+define float @entry_cs(float %f) #3 {
+entry:
+  ret float %f
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="amplification" }
+attributes #1 = { noinline nounwind "hlsl.shader"="mesh" }
+attributes #3 = { noinline nounwind "hlsl.numthreads"="1,2,1" "hlsl.shader"="compute" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-as.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-as.ll
new file mode 100644
index 00000000000000..6a8496bf731a3b
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-as.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6-amplification"
+
+; CHECK: Shader Model Version : 6
+; CHECK-NEXT: DXIL Version : 1.0
+; CHECK-NEXT: Target Shader Stage : amplification
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : amplification
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="amplification" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs-val-ver-0.0.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs-val-ver-0.0.ll
new file mode 100644
index 00000000000000..e09f4fc4114338
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs-val-ver-0.0.ll
@@ -0,0 +1,23 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+
+target triple = "dxil-pc-shadermodel6.6-compute"
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "exp-shader"="cs" "hlsl.numthreads"="1,2,1" "hlsl.shader"="compute" }
+
+!dx.valver = !{!0}
+
+!0 = !{i32 0, i32 0}
+
+; CHECK: Shader Model Version : 6.6
+; CHECK-NEXT: DXIL Version : 1.6
+; CHECK-NEXT: Target Shader Stage : compute
+; CHECK-NEXT: Validator Version : 0.0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : compute
+; CHECK-NEXT:   NumThreads: 1,2,1
+; CHECK-EMPTY:

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs.ll
new file mode 100644
index 00000000000000..4d6d696e6b29e4
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-cs.ll
@@ -0,0 +1,19 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+
+target triple = "dxil-pc-shadermodel6.6-compute"
+
+; CHECK: Shader Model Version : 6.6
+; CHECK-NEXT: DXIL Version : 1.6
+; CHECK-NEXT: Target Shader Stage : compute
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : compute
+; CHECK-NEXT:   NumThreads: 1,2,1
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "exp-shader"="cs" "hlsl.numthreads"="1,2,1" "hlsl.shader"="compute" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-gs.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-gs.ll
new file mode 100644
index 00000000000000..e28438901bdfe1
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-gs.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6.6-geometry"
+
+; CHECK: Shader Model Version : 6.6
+; CHECK-NEXT: DXIL Version : 1.6
+; CHECK-NEXT: Shader Stage : geometry
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : geometry
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="geometry" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-hs.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-hs.ll
new file mode 100644
index 00000000000000..fdec1d857118b8
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-hs.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6.6-hull"
+
+; CHECK: Shader Model Version : 6.6
+; CHECK-NEXT: DXIL Version : 1.6
+; CHECK-NEXT: Target Shader Stage : hull
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : hull
+; CHECK-NEXT:  NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="hull" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ms.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ms.ll
new file mode 100644
index 00000000000000..77bc3bbd85f9f2
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ms.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel6.6-mesh"
+
+; CHECK: Shader Model Version : 6.6
+; CHECK-NEXT: DXIL Version : 1.6
+; CHECK-NEXT: Shader Stage : mesh
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : mesh
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="mesh" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ps.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ps.ll
new file mode 100644
index 00000000000000..a02c56dbe17a21
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-ps.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel5.0-pixel"
+
+; CHECK: Shader Model Version : 5.0
+; CHECK-NEXT: DXIL Version : 1.0
+; CHECK-NEXT: Shader Stage : pixel
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : pixel
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="pixel" }

diff  --git a/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-vs.ll b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-vs.ll
new file mode 100644
index 00000000000000..107f9fc1f0a24a
--- /dev/null
+++ b/llvm/test/Analysis/DXILMetadataAnalysis/shaderModel-vs.ll
@@ -0,0 +1,18 @@
+; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s
+target triple = "dxil-pc-shadermodel-vertex"
+
+; CHECK: Shader Model Version : 0
+; CHECK-NEXT: DXIL Version : 1.0
+; CHECK-NEXT: Shader Stage : vertex
+; CHECK-NEXT: Validator Version : 0
+; CHECK-NEXT: entry
+; CHECK-NEXT:  Function Shader Stage : vertex
+; CHECK-NEXT:   NumThreads: 0,0,0
+; CHECK-EMPTY:
+
+define void @entry() #0 {
+entry:
+  ret void
+}
+
+attributes #0 = { noinline nounwind "hlsl.shader"="vertex" }

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll b/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll
index 30797945e8e56c..3c54d9a8cf576b 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.0.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -passes=dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6.0-vertex"
 
 ; CHECK: !dx.version = !{![[DXVER:[0-9]+]]}
 ; CHECK: ![[DXVER]] = !{i32 1, i32 0}
 
-; ANALYSIS: Shader Model Version : 6.0
-; ANALYSIS-NEXT: DXIL Version : 1.0
-; ANALYSIS-NEXT: Shader Stage : vertex
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll b/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll
index 53edcde24b189f..9ed0f90fb38d01 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/dxilVer-1.8.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -passes=dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6.8-compute"
 
 ; CHECK: !dx.version = !{![[DXVER:[0-9]+]]}
 ; CHECK: ![[DXVER]] = !{i32 1, i32 8}
 
-; ANALYSIS: Shader Model Version : 6.8
-; ANALYSIS-NEXT: DXIL Version : 1.8
-; ANALYSIS-NEXT: Shader Stage : compute
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-as.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-as.ll
index 49c820e14e36b4..4db160edb45af1 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-as.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-as.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6-amplification"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"as", i32 6, i32 0}
 
-; ANALYSIS: Shader Model Version : 6
-; ANALYSIS-NEXT: DXIL Version : 1.0
-; ANALYSIS-NEXT: Shader Stage : amplification
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll
index c9ea6c94e36519..d674ef3693497e 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs-val-ver-0.0.ll
@@ -1,5 +1,4 @@
 ; RUN: opt -S -dxil-prepare  %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 
 target triple = "dxil-pc-shadermodel6.6-compute"
 
@@ -15,9 +14,3 @@ attributes #0 = { noinline nounwind "exp-shader"="cs" "hlsl.numthreads"="1,2,1"
 !dx.valver = !{!0}
 
 !0 = !{i32 0, i32 0}
-
-; ANALYSIS: Shader Model Version : 6.6
-; ANALYSIS-NEXT: DXIL Version : 1.6
-; ANALYSIS-NEXT: Shader Stage : compute
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll
index f5e524562ac1e0..d055a7435613df 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-cs.ll
@@ -1,18 +1,11 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
 ; RUN: opt -S -dxil-prepare  %s | FileCheck %s  --check-prefix=REMOVE_EXTRA_ATTRIBUTE
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 
 target triple = "dxil-pc-shadermodel6.6-compute"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"cs", i32 6, i32 6}
 
-; ANALYSIS: Shader Model Version : 6.6
-; ANALYSIS-NEXT: DXIL Version : 1.6
-; ANALYSIS-NEXT: Shader Stage : compute
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-gs.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-gs.ll
index fb58312e2c9310..6d48826c693bed 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-gs.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-gs.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6.6-geometry"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"gs", i32 6, i32 6}
 
-; ANALYSIS: Shader Model Version : 6.6
-; ANALYSIS-NEXT: DXIL Version : 1.6
-; ANALYSIS-NEXT: Shader Stage : geometry
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-hs.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-hs.ll
index b12de400698fe1..cc15460c0bed37 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-hs.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-hs.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6.6-hull"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"hs", i32 6, i32 6}
 
-; ANALYSIS: Shader Model Version : 6.6
-; ANALYSIS-NEXT: DXIL Version : 1.6
-; ANALYSIS-NEXT: Shader Stage : hull
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-lib.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-lib.ll
index d4aa4cfa0ce471..0e8cc4f6504dbc 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-lib.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-lib.ll
@@ -1,12 +1,6 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6.3-library"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"lib", i32 6, i32 3}
 
-; ANALYSIS: Shader Model Version : 6.3
-; ANALYSIS-NEXT: DXIL Version : 1.3
-; ANALYSIS-NEXT: Shader Stage : library
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ms.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ms.ll
index e22dbbcebf5849..dfab52654eb3f2 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ms.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ms.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel6.6-mesh"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"ms", i32 6, i32 6}
 
-; ANALYSIS: Shader Model Version : 6.6
-; ANALYSIS-NEXT: DXIL Version : 1.6
-; ANALYSIS-NEXT: Shader Stage : mesh
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ps.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ps.ll
index eb784d71517bba..71a73f8deb24d7 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ps.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-ps.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel5.0-pixel"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"ps", i32 5, i32 0}
 
-; ANALYSIS: Shader Model Version : 5.0
-; ANALYSIS-NEXT: DXIL Version : 1.0
-; ANALYSIS-NEXT: Shader Stage : pixel
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void

diff  --git a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-vs.ll b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-vs.ll
index ac52b5004eb906..4bb31b0147379b 100644
--- a/llvm/test/CodeGen/DirectX/Metadata/shaderModel-vs.ll
+++ b/llvm/test/CodeGen/DirectX/Metadata/shaderModel-vs.ll
@@ -1,16 +1,9 @@
 ; RUN: opt -S -dxil-translate-metadata %s | FileCheck %s
-; RUN: opt -S -passes="print<dxil-metadata>" -disable-output %s 2>&1 | FileCheck %s --check-prefix=ANALYSIS
 target triple = "dxil-pc-shadermodel-vertex"
 
 ; CHECK: !dx.shaderModel = !{![[SM:[0-9]+]]}
 ; CHECK: ![[SM]] = !{!"vs", i32 0, i32 0}
 
-; ANALYSIS: Shader Model Version : 0
-; ANALYSIS-NEXT: DXIL Version : 1.0
-; ANALYSIS-NEXT: Shader Stage : vertex
-; ANALYSIS-NEXT: Validator Version : 0
-; ANALYSIS-EMPTY:
-
 define void @entry() #0 {
 entry:
   ret void


        


More information about the llvm-commits mailing list