[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