-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Revert "[DirectX][objdump] Add support for printing signatures" #153313
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…)" This reverts commit 9526d3b.
@llvm/pr-subscribers-backend-directx Author: Chris B (llvm-beanz) ChangesReverts llvm/llvm-project#152531 Full diff: https://github.com/llvm/llvm-project/pull/153313.diff 3 Files Affected:
diff --git a/llvm/include/llvm/Object/DXContainer.h b/llvm/include/llvm/Object/DXContainer.h
index 93d39dabae4b9..ad1b2361ff064 100644
--- a/llvm/include/llvm/Object/DXContainer.h
+++ b/llvm/include/llvm/Object/DXContainer.h
@@ -603,8 +603,6 @@ class LLVM_ABI DXContainerObjectFile : public ObjectFile {
}
public:
- const DXContainer &getDXContainer() const { return Container; }
-
static bool classof(const Binary *v) { return v->isDXContainer(); }
Expected<StringRef> getSymbolName(DataRefImpl) const override;
diff --git a/llvm/test/tools/llvm-objdump/DXContainer/input-output-signatures.yaml b/llvm/test/tools/llvm-objdump/DXContainer/input-output-signatures.yaml
deleted file mode 100644
index 7cc11af251182..0000000000000
--- a/llvm/test/tools/llvm-objdump/DXContainer/input-output-signatures.yaml
+++ /dev/null
@@ -1,167 +0,0 @@
-# RUN: yaml2obj %s -o %t
-# RUN: llvm-objdump -p %t | FileCheck %s --match-full-lines --strict-whitespace
-
-# This test covers llvm-objdump printing private headers for the ISG1, OSG1, and
-# PSG1 "parts" of the DX container file format. The test uses a few absurdly
-# large values and long string names to ensure that the columns in the printed
-# table widen correctly.
-
---- !dxcontainer
-Header:
- Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
- Version:
- Major: 1
- Minor: 0
- FileSize: 630
- PartCount: 3
- PartOffsets: [ 64, 124, 184 ]
-Parts:
- - Name: ISG1
- Size: 52
- Signature:
- Parameters:
- - Stream: 0
- Name: AAA_HSFoo
- Index: 4391238 # This value forces the index column to widen
- SystemValue: Undefined
- CompType: Float32
- Register: 0
- Mask: 7
- ExclusiveMask: 2
- MinPrecision: Default
- - Name: OSG1
- Size: 52
- Signature:
- Parameters:
- - Stream: 0
- Name: SV_Position
- Index: 0
- SystemValue: Position
- CompType: Float32
- Register: 2147483647 # This value forces the register column to widen
- Mask: 15
- ExclusiveMask: 0
- MinPrecision: Default
- - Name: PSG1
- Size: 402
- Signature:
- Parameters:
- - Stream: 0
- Name: SV_TessFactor
- Index: 0
- SystemValue: FinalQuadEdgeTessfactor # The tessfactor forces the SysVal column to widen
- CompType: Float32
- Register: 0
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: BBB
- Index: 0
- SystemValue: Undefined
- CompType: Float32
- Register: 0
- Mask: 7
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_TessFactor
- Index: 1
- SystemValue: FinalQuadEdgeTessfactor
- CompType: Float32
- Register: 1
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: BBB
- Index: 1
- SystemValue: Undefined
- CompType: Float32
- Register: 1
- Mask: 7
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_TessFactor
- Index: 2
- SystemValue: FinalQuadEdgeTessfactor
- CompType: Float32
- Register: 2
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: BBB
- Index: 2
- SystemValue: Undefined
- CompType: Float32
- Register: 2
- Mask: 7
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_TessFactor
- Index: 3
- SystemValue: FinalQuadEdgeTessfactor
- CompType: Float32
- Register: 3
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: SV_InsideTessFactor
- Index: 0
- SystemValue: FinalQuadInsideTessfactor
- CompType: Float32
- Register: 4
- Mask: 8
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_InsideTessFactor
- Index: 1
- SystemValue: FinalQuadInsideTessfactor
- CompType: Float32
- Register: 5
- Mask: 8
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: AVeryLongStringThatWillForceWidening # This value forces name column to widen
- Index: 0
- SystemValue: Undefined
- CompType: Float32
- Register: 6
- Mask: 15
- ExclusiveMask: 4
- MinPrecision: Default
-...
-
-# CHECK: ; Input signature:
-# CHECK-NEXT: ;
-# CHECK-NEXT: ; Name Index Mask Register SysValue Format Used
-# CHECK-NEXT: ; ------------------------ ------- ----- -------- ---------- ------- -----
-# CHECK-NEXT: ; AAA_HSFoo 4391238 xyz 0 Undefined Float32 y
-
-# CHECK: ; Output signature:
-# CHECK-NEXT: ;
-# CHECK-NEXT: ; Name Index Mask Register SysValue Format Used
-# CHECK-NEXT: ; ------------------------ ----- ----- ---------- ---------- ------- -----
-# CHECK-NEXT: ; SV_Position 0 xyzw 2147483647 Position Float32
-
-# CHECK: ; Patch Constant signature:
-# CHECK-NEXT: ;
-# CHECK-NEXT: ; Name Index Mask Register SysValue Format Used
-# CHECK-NEXT: ; ------------------------------------ ----- ----- -------- ------------------------- ------- -----
-# CHECK-NEXT: ; SV_TessFactor 0 w 0 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; BBB 0 xyz 0 Undefined Float32
-# CHECK-NEXT: ; SV_TessFactor 1 w 1 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; BBB 1 xyz 1 Undefined Float32
-# CHECK-NEXT: ; SV_TessFactor 2 w 2 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; BBB 2 xyz 2 Undefined Float32
-# CHECK-NEXT: ; SV_TessFactor 3 w 3 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; SV_InsideTessFactor 0 w 4 FinalQuadInsideTessfactor Float32
-# CHECK-NEXT: ; SV_InsideTessFactor 1 w 5 FinalQuadInsideTessfactor Float32
-# CHECK-NEXT: ; AVeryLongStringThatWillForceWidening 0 xyzw 6 Undefined Float32 z
diff --git a/llvm/tools/llvm-objdump/DXContainerDump.cpp b/llvm/tools/llvm-objdump/DXContainerDump.cpp
index 963ff54d4e411..2fb073473de53 100644
--- a/llvm/tools/llvm-objdump/DXContainerDump.cpp
+++ b/llvm/tools/llvm-objdump/DXContainerDump.cpp
@@ -12,141 +12,16 @@
//===----------------------------------------------------------------------===//
#include "llvm-objdump.h"
-#include "llvm/BinaryFormat/DXContainer.h"
#include "llvm/Object/DXContainer.h"
-#include "llvm/Support/ScopedPrinter.h"
using namespace llvm;
-using namespace llvm::object;
-
-static llvm::SmallString<4> maskToString(uint8_t Mask) {
- llvm::SmallString<4> Result(" ");
- if (Mask & 1)
- Result[0] = 'x';
- if (Mask & 2)
- Result[1] = 'y';
- if (Mask & 4)
- Result[2] = 'z';
- if (Mask & 8)
- Result[3] = 'w';
- return Result;
-}
-
-static void printColumnHeader(raw_ostream &OS, size_t Length) {
- for (size_t I = 0; I < Length; ++I)
- OS << "-";
-}
-
-static void printColumnHeaders(raw_ostream &OS, ArrayRef<size_t> Lengths) {
- for (auto L : Lengths) {
- printColumnHeader(OS, L);
- OS << " ";
- }
- OS << "\n";
-}
-
-static size_t digitsForNumber(size_t N) {
- return static_cast<size_t>(log10(static_cast<double>(N))) + 1;
-}
namespace {
class DXContainerDumper : public objdump::Dumper {
- const DXContainerObjectFile &Obj;
-
public:
- DXContainerDumper(const DXContainerObjectFile &O)
- : objdump::Dumper(O), Obj(O) {}
-
- void printPrivateHeaders() override;
- void printSignature(const DirectX::Signature &S);
+ DXContainerDumper(const object::DXContainerObjectFile &Obj)
+ : objdump::Dumper(Obj) {}
};
-
-void DXContainerDumper::printSignature(const DirectX::Signature &S) {
- // DXC prints a table like this as part of the shader disassembly:
- //; Name Index Mask Register SysValue Format Used
- //; -------------------- ----- ------ -------- -------- ------- ------
- //; NORMAL 0 xyz 0 NONE float xyz
- //; TEXCOORD 0 xy 1 NONE float xy
-
- // DXC's implementation doesn't scale columns entirely completely for the
- // provided input, so this implementation is a bit more complicated in
- // formatting logic to scale with the size of the printed text.
-
- // DXC gives names 21 characters for some unknown reason, I arbitrarily chose
- // to start at 24 so that we're not going shorter but are using a round
- // number.
- size_t LongestName = 24;
- size_t LongestSV = 10;
- size_t LongestIndex = strlen("Index");
- size_t LongestRegister = strlen("Register");
- size_t LongestFormat = strlen("Format");
- const size_t MaskWidth = 5;
- // Compute the column widths. Skip calculating the "Mask" and "Used" columns
- // since they both have widths of 4.
- for (auto El : S) {
- LongestName = std::max(LongestName, S.getName(El.NameOffset).size());
- LongestSV = std::max(
- LongestSV,
- enumToStringRef(El.SystemValue, dxbc::getD3DSystemValues()).size());
- LongestIndex = std::max(LongestIndex, digitsForNumber(El.Index));
- LongestRegister = std::max(LongestRegister, digitsForNumber(El.Register));
- LongestFormat = std::max(
- LongestFormat,
- enumToStringRef(El.CompType, dxbc::getSigComponentTypes()).size());
- }
-
- // Print Column headers.
- OS << "; ";
- OS << left_justify("Name", LongestName) << " ";
- OS << right_justify("Index", LongestIndex) << " ";
- OS << right_justify("Mask", MaskWidth) << " ";
- OS << right_justify("Register", LongestRegister) << " ";
- OS << right_justify("SysValue", LongestSV) << " ";
- OS << right_justify("Format", LongestFormat) << " ";
- OS << right_justify("Used", MaskWidth) << "\n";
- OS << "; ";
- printColumnHeaders(OS, {LongestName, LongestIndex, MaskWidth, LongestRegister,
- LongestSV, LongestFormat, MaskWidth});
-
- for (auto El : S) {
- OS << "; " << left_justify(S.getName(El.NameOffset), LongestName) << " ";
- OS << right_justify(std::to_string(El.Index), LongestIndex) << " ";
- OS << right_justify(maskToString(El.Mask), MaskWidth) << " ";
- OS << right_justify(std::to_string(El.Register), LongestRegister) << " ";
- OS << right_justify(
- enumToStringRef(El.SystemValue, dxbc::getD3DSystemValues()),
- LongestSV)
- << " ";
- OS << right_justify(
- enumToStringRef(El.CompType, dxbc::getSigComponentTypes()),
- LongestFormat)
- << " ";
- OS << right_justify(maskToString(El.ExclusiveMask), MaskWidth) << "\n";
- }
-}
-
-void DXContainerDumper::printPrivateHeaders() {
- const DXContainer &C =
- cast<object::DXContainerObjectFile>(Obj).getDXContainer();
-
- if (!C.getInputSignature().isEmpty()) {
- OS << "; Input signature:\n;\n";
- printSignature(C.getInputSignature());
- OS << ";\n";
- }
-
- if (!C.getOutputSignature().isEmpty()) {
- OS << "; Output signature:\n;\n";
- printSignature(C.getOutputSignature());
- OS << ";\n";
- }
-
- if (!C.getPatchConstantSignature().isEmpty()) {
- OS << "; Patch Constant signature:\n;\n";
- printSignature(C.getPatchConstantSignature());
- OS << ";\n";
- }
-}
} // namespace
std::unique_ptr<objdump::Dumper> llvm::objdump::createDXContainerDumper(
|
@llvm/pr-subscribers-llvm-binary-utilities Author: Chris B (llvm-beanz) ChangesReverts llvm/llvm-project#152531 Full diff: https://github.com/llvm/llvm-project/pull/153313.diff 3 Files Affected:
diff --git a/llvm/include/llvm/Object/DXContainer.h b/llvm/include/llvm/Object/DXContainer.h
index 93d39dabae4b9..ad1b2361ff064 100644
--- a/llvm/include/llvm/Object/DXContainer.h
+++ b/llvm/include/llvm/Object/DXContainer.h
@@ -603,8 +603,6 @@ class LLVM_ABI DXContainerObjectFile : public ObjectFile {
}
public:
- const DXContainer &getDXContainer() const { return Container; }
-
static bool classof(const Binary *v) { return v->isDXContainer(); }
Expected<StringRef> getSymbolName(DataRefImpl) const override;
diff --git a/llvm/test/tools/llvm-objdump/DXContainer/input-output-signatures.yaml b/llvm/test/tools/llvm-objdump/DXContainer/input-output-signatures.yaml
deleted file mode 100644
index 7cc11af251182..0000000000000
--- a/llvm/test/tools/llvm-objdump/DXContainer/input-output-signatures.yaml
+++ /dev/null
@@ -1,167 +0,0 @@
-# RUN: yaml2obj %s -o %t
-# RUN: llvm-objdump -p %t | FileCheck %s --match-full-lines --strict-whitespace
-
-# This test covers llvm-objdump printing private headers for the ISG1, OSG1, and
-# PSG1 "parts" of the DX container file format. The test uses a few absurdly
-# large values and long string names to ensure that the columns in the printed
-# table widen correctly.
-
---- !dxcontainer
-Header:
- Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
- Version:
- Major: 1
- Minor: 0
- FileSize: 630
- PartCount: 3
- PartOffsets: [ 64, 124, 184 ]
-Parts:
- - Name: ISG1
- Size: 52
- Signature:
- Parameters:
- - Stream: 0
- Name: AAA_HSFoo
- Index: 4391238 # This value forces the index column to widen
- SystemValue: Undefined
- CompType: Float32
- Register: 0
- Mask: 7
- ExclusiveMask: 2
- MinPrecision: Default
- - Name: OSG1
- Size: 52
- Signature:
- Parameters:
- - Stream: 0
- Name: SV_Position
- Index: 0
- SystemValue: Position
- CompType: Float32
- Register: 2147483647 # This value forces the register column to widen
- Mask: 15
- ExclusiveMask: 0
- MinPrecision: Default
- - Name: PSG1
- Size: 402
- Signature:
- Parameters:
- - Stream: 0
- Name: SV_TessFactor
- Index: 0
- SystemValue: FinalQuadEdgeTessfactor # The tessfactor forces the SysVal column to widen
- CompType: Float32
- Register: 0
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: BBB
- Index: 0
- SystemValue: Undefined
- CompType: Float32
- Register: 0
- Mask: 7
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_TessFactor
- Index: 1
- SystemValue: FinalQuadEdgeTessfactor
- CompType: Float32
- Register: 1
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: BBB
- Index: 1
- SystemValue: Undefined
- CompType: Float32
- Register: 1
- Mask: 7
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_TessFactor
- Index: 2
- SystemValue: FinalQuadEdgeTessfactor
- CompType: Float32
- Register: 2
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: BBB
- Index: 2
- SystemValue: Undefined
- CompType: Float32
- Register: 2
- Mask: 7
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_TessFactor
- Index: 3
- SystemValue: FinalQuadEdgeTessfactor
- CompType: Float32
- Register: 3
- Mask: 8
- ExclusiveMask: 8
- MinPrecision: Default
- - Stream: 0
- Name: SV_InsideTessFactor
- Index: 0
- SystemValue: FinalQuadInsideTessfactor
- CompType: Float32
- Register: 4
- Mask: 8
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: SV_InsideTessFactor
- Index: 1
- SystemValue: FinalQuadInsideTessfactor
- CompType: Float32
- Register: 5
- Mask: 8
- ExclusiveMask: 0
- MinPrecision: Default
- - Stream: 0
- Name: AVeryLongStringThatWillForceWidening # This value forces name column to widen
- Index: 0
- SystemValue: Undefined
- CompType: Float32
- Register: 6
- Mask: 15
- ExclusiveMask: 4
- MinPrecision: Default
-...
-
-# CHECK: ; Input signature:
-# CHECK-NEXT: ;
-# CHECK-NEXT: ; Name Index Mask Register SysValue Format Used
-# CHECK-NEXT: ; ------------------------ ------- ----- -------- ---------- ------- -----
-# CHECK-NEXT: ; AAA_HSFoo 4391238 xyz 0 Undefined Float32 y
-
-# CHECK: ; Output signature:
-# CHECK-NEXT: ;
-# CHECK-NEXT: ; Name Index Mask Register SysValue Format Used
-# CHECK-NEXT: ; ------------------------ ----- ----- ---------- ---------- ------- -----
-# CHECK-NEXT: ; SV_Position 0 xyzw 2147483647 Position Float32
-
-# CHECK: ; Patch Constant signature:
-# CHECK-NEXT: ;
-# CHECK-NEXT: ; Name Index Mask Register SysValue Format Used
-# CHECK-NEXT: ; ------------------------------------ ----- ----- -------- ------------------------- ------- -----
-# CHECK-NEXT: ; SV_TessFactor 0 w 0 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; BBB 0 xyz 0 Undefined Float32
-# CHECK-NEXT: ; SV_TessFactor 1 w 1 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; BBB 1 xyz 1 Undefined Float32
-# CHECK-NEXT: ; SV_TessFactor 2 w 2 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; BBB 2 xyz 2 Undefined Float32
-# CHECK-NEXT: ; SV_TessFactor 3 w 3 FinalQuadEdgeTessfactor Float32 w
-# CHECK-NEXT: ; SV_InsideTessFactor 0 w 4 FinalQuadInsideTessfactor Float32
-# CHECK-NEXT: ; SV_InsideTessFactor 1 w 5 FinalQuadInsideTessfactor Float32
-# CHECK-NEXT: ; AVeryLongStringThatWillForceWidening 0 xyzw 6 Undefined Float32 z
diff --git a/llvm/tools/llvm-objdump/DXContainerDump.cpp b/llvm/tools/llvm-objdump/DXContainerDump.cpp
index 963ff54d4e411..2fb073473de53 100644
--- a/llvm/tools/llvm-objdump/DXContainerDump.cpp
+++ b/llvm/tools/llvm-objdump/DXContainerDump.cpp
@@ -12,141 +12,16 @@
//===----------------------------------------------------------------------===//
#include "llvm-objdump.h"
-#include "llvm/BinaryFormat/DXContainer.h"
#include "llvm/Object/DXContainer.h"
-#include "llvm/Support/ScopedPrinter.h"
using namespace llvm;
-using namespace llvm::object;
-
-static llvm::SmallString<4> maskToString(uint8_t Mask) {
- llvm::SmallString<4> Result(" ");
- if (Mask & 1)
- Result[0] = 'x';
- if (Mask & 2)
- Result[1] = 'y';
- if (Mask & 4)
- Result[2] = 'z';
- if (Mask & 8)
- Result[3] = 'w';
- return Result;
-}
-
-static void printColumnHeader(raw_ostream &OS, size_t Length) {
- for (size_t I = 0; I < Length; ++I)
- OS << "-";
-}
-
-static void printColumnHeaders(raw_ostream &OS, ArrayRef<size_t> Lengths) {
- for (auto L : Lengths) {
- printColumnHeader(OS, L);
- OS << " ";
- }
- OS << "\n";
-}
-
-static size_t digitsForNumber(size_t N) {
- return static_cast<size_t>(log10(static_cast<double>(N))) + 1;
-}
namespace {
class DXContainerDumper : public objdump::Dumper {
- const DXContainerObjectFile &Obj;
-
public:
- DXContainerDumper(const DXContainerObjectFile &O)
- : objdump::Dumper(O), Obj(O) {}
-
- void printPrivateHeaders() override;
- void printSignature(const DirectX::Signature &S);
+ DXContainerDumper(const object::DXContainerObjectFile &Obj)
+ : objdump::Dumper(Obj) {}
};
-
-void DXContainerDumper::printSignature(const DirectX::Signature &S) {
- // DXC prints a table like this as part of the shader disassembly:
- //; Name Index Mask Register SysValue Format Used
- //; -------------------- ----- ------ -------- -------- ------- ------
- //; NORMAL 0 xyz 0 NONE float xyz
- //; TEXCOORD 0 xy 1 NONE float xy
-
- // DXC's implementation doesn't scale columns entirely completely for the
- // provided input, so this implementation is a bit more complicated in
- // formatting logic to scale with the size of the printed text.
-
- // DXC gives names 21 characters for some unknown reason, I arbitrarily chose
- // to start at 24 so that we're not going shorter but are using a round
- // number.
- size_t LongestName = 24;
- size_t LongestSV = 10;
- size_t LongestIndex = strlen("Index");
- size_t LongestRegister = strlen("Register");
- size_t LongestFormat = strlen("Format");
- const size_t MaskWidth = 5;
- // Compute the column widths. Skip calculating the "Mask" and "Used" columns
- // since they both have widths of 4.
- for (auto El : S) {
- LongestName = std::max(LongestName, S.getName(El.NameOffset).size());
- LongestSV = std::max(
- LongestSV,
- enumToStringRef(El.SystemValue, dxbc::getD3DSystemValues()).size());
- LongestIndex = std::max(LongestIndex, digitsForNumber(El.Index));
- LongestRegister = std::max(LongestRegister, digitsForNumber(El.Register));
- LongestFormat = std::max(
- LongestFormat,
- enumToStringRef(El.CompType, dxbc::getSigComponentTypes()).size());
- }
-
- // Print Column headers.
- OS << "; ";
- OS << left_justify("Name", LongestName) << " ";
- OS << right_justify("Index", LongestIndex) << " ";
- OS << right_justify("Mask", MaskWidth) << " ";
- OS << right_justify("Register", LongestRegister) << " ";
- OS << right_justify("SysValue", LongestSV) << " ";
- OS << right_justify("Format", LongestFormat) << " ";
- OS << right_justify("Used", MaskWidth) << "\n";
- OS << "; ";
- printColumnHeaders(OS, {LongestName, LongestIndex, MaskWidth, LongestRegister,
- LongestSV, LongestFormat, MaskWidth});
-
- for (auto El : S) {
- OS << "; " << left_justify(S.getName(El.NameOffset), LongestName) << " ";
- OS << right_justify(std::to_string(El.Index), LongestIndex) << " ";
- OS << right_justify(maskToString(El.Mask), MaskWidth) << " ";
- OS << right_justify(std::to_string(El.Register), LongestRegister) << " ";
- OS << right_justify(
- enumToStringRef(El.SystemValue, dxbc::getD3DSystemValues()),
- LongestSV)
- << " ";
- OS << right_justify(
- enumToStringRef(El.CompType, dxbc::getSigComponentTypes()),
- LongestFormat)
- << " ";
- OS << right_justify(maskToString(El.ExclusiveMask), MaskWidth) << "\n";
- }
-}
-
-void DXContainerDumper::printPrivateHeaders() {
- const DXContainer &C =
- cast<object::DXContainerObjectFile>(Obj).getDXContainer();
-
- if (!C.getInputSignature().isEmpty()) {
- OS << "; Input signature:\n;\n";
- printSignature(C.getInputSignature());
- OS << ";\n";
- }
-
- if (!C.getOutputSignature().isEmpty()) {
- OS << "; Output signature:\n;\n";
- printSignature(C.getOutputSignature());
- OS << ";\n";
- }
-
- if (!C.getPatchConstantSignature().isEmpty()) {
- OS << "; Patch Constant signature:\n;\n";
- printSignature(C.getPatchConstantSignature());
- OS << ";\n";
- }
-}
} // namespace
std::unique_ptr<objdump::Dumper> llvm::objdump::createDXContainerDumper(
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reverts #152531