[llvm] 996267d - [DirectX backend] set target triple to "dxil-ms-dx"

Xiang Li via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 24 14:49:36 PDT 2022


Author: Xiang Li
Date: 2022-10-24T14:49:31-07:00
New Revision: 996267d20ea08826f7440e8bd2f38f0cfc575039

URL: https://github.com/llvm/llvm-project/commit/996267d20ea08826f7440e8bd2f38f0cfc575039
DIFF: https://github.com/llvm/llvm-project/commit/996267d20ea08826f7440e8bd2f38f0cfc575039.diff

LOG: [DirectX backend] set target triple to "dxil-ms-dx"

Set target triple to "dxil-ms-dx" for DXIL at the end of DXILTranslateMetadata.

Reviewed By: beanz

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

Added: 
    llvm/test/tools/dxil-dis/triple.ll

Modified: 
    llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
    llvm/test/CodeGen/DirectX/embed-dxil.ll
    llvm/test/tools/dxil-dis/attribute-filter.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp b/llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
index c1f9f4aec6725..1e32141cc098c 100644
--- a/llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
+++ b/llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
@@ -64,8 +64,17 @@ class EmbedDXILPass : public llvm::ModulePass {
   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,

diff  --git a/llvm/test/CodeGen/DirectX/embed-dxil.ll b/llvm/test/CodeGen/DirectX/embed-dxil.ll
index aa9c75a3ffe4e..bea6f60f78562 100644
--- a/llvm/test/CodeGen/DirectX/embed-dxil.ll
+++ b/llvm/test/CodeGen/DirectX/embed-dxil.ll
@@ -3,6 +3,9 @@
 ; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s --check-prefix=DXC
 target triple = "dxil-unknown-shadermodel6.5-library"
 
+; Make sure triple is restored after updated to dxil.
+; CHECK:target triple = "dxil-unknown-shadermodel6.5-library"
+
 define i32 @add(i32 %a, i32 %b) {
   %sum = add i32 %a, %b
   ret i32 %sum

diff  --git a/llvm/test/tools/dxil-dis/attribute-filter.ll b/llvm/test/tools/dxil-dis/attribute-filter.ll
index 3ce3b0e03c36a..94a091c229e0c 100644
--- a/llvm/test/tools/dxil-dis/attribute-filter.ll
+++ b/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

diff  --git a/llvm/test/tools/dxil-dis/triple.ll b/llvm/test/tools/dxil-dis/triple.ll
new file mode 100644
index 0000000000000..1c21d3fa62842
--- /dev/null
+++ b/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"


        


More information about the llvm-commits mailing list