[PATCH] D131545: [DirectX backend] emit metadata for DXIL version, ShaderModel.

Xiang Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 13 17:21:57 PDT 2022


python3kgae updated this revision to Diff 467642.
python3kgae added a comment.

Rebase and only set target triple to "dxil-ms-dx"


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131545/new/

https://reviews.llvm.org/D131545

Files:
  llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
  llvm/test/tools/dxil-dis/attribute-filter.ll
  llvm/test/tools/dxil-dis/triple.ll


Index: llvm/test/tools/dxil-dis/triple.ll
===================================================================
--- /dev/null
+++ llvm/test/tools/dxil-dis/triple.ll
@@ -0,0 +1,5 @@
+; RUN: llc --filetype=obj %s -o - | dxil-dis  -o - | FileCheck %s
+target triple = "dxil-unknown-shadermodel6.7-library"
+
+; Make sure triple updated to dxil.
+; CHECK:target triple = "dxil-ms-dx"
Index: llvm/test/tools/dxil-dis/attribute-filter.ll
===================================================================
--- llvm/test/tools/dxil-dis/attribute-filter.ll
+++ llvm/test/tools/dxil-dis/attribute-filter.ll
@@ -1,6 +1,6 @@
 ; RUN: llc %s --filetype=obj -o - | dxil-dis -o - | FileCheck %s
 
-; CHECK: target triple = "dxil-unknown-shadermodel6.7-library"
+; CHECK: target triple = "dxil-ms-dx"
 target triple = "dxil-unknown-shadermodel6.7-library"
 
 ; CHECK: Function Attrs: nounwind readnone
Index: llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
===================================================================
--- llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
+++ llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
@@ -64,8 +64,17 @@
   bool runOnModule(Module &M) override {
     std::string Data;
     llvm::raw_string_ostream OS(Data);
+
+    const std::string OriginalTriple = M.getTargetTriple();
+    // Set to DXIL triple when write to bitcode.
+    // Only the output bitcode need to be DXIL triple.
+    M.setTargetTriple("dxil-ms-dx");
+
     WriteDXILToFile(M, OS);
 
+    // Recover triple.
+    M.setTargetTriple(OriginalTriple);
+
     Constant *ModuleConstant =
         ConstantDataArray::get(M.getContext(), arrayRefFromStringRef(Data));
     auto *GV = new llvm::GlobalVariable(M, ModuleConstant->getType(), true,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131545.467642.patch
Type: text/x-patch
Size: 1746 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221014/b8266dd0/attachment.bin>


More information about the llvm-commits mailing list