-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[llvm-debuginfo-analyzer] Add --output-sort=none
option
#145761
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
base: main
Are you sure you want to change the base?
[llvm-debuginfo-analyzer] Add --output-sort=none
option
#145761
Conversation
@llvm/pr-subscribers-debuginfo Author: Javier Lopez-Gomez (jalopezg-git) ChangesAdd the For the available readers, this matches Full diff: https://github.com/llvm/llvm-project/pull/145761.diff 5 Files Affected:
diff --git a/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst b/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
index 1264f80206618..3d9b53c2c5a0d 100644
--- a/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
+++ b/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
@@ -365,6 +365,7 @@ output for a single compilation unit.
.. code-block:: text
+ =none: Unsorted output (i.e. as read from input).
=kind: Sort by element kind.
=line: Sort by element line number.
=name: Sort by element name.
diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test b/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test
index be2085a187eb9..763d31ec54754 100644
--- a/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test
+++ b/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test
@@ -24,6 +24,15 @@
; RUN: %p/Inputs/test-codeview-clang.o 2>&1 | \
; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+; If `--output-sort=none`, LVReader::sortScopes() has no effect and elements are
+; iterated in the order in which they were added (which matches the increasing
+; offset of the reference output).
+; RUN: llvm-debuginfo-analyzer --attribute=level,format \
+; RUN: --output-sort=none \
+; RUN: --print=scopes,symbols,types,lines,instructions \
+; RUN: %p/Inputs/test-codeview-clang.o 2>&1 | \
+; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+
; RUN: llvm-debuginfo-analyzer --attribute=level,format \
; RUN: --output-sort=offset \
; RUN: --print=elements \
diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test b/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test
index 54dbd7466e4f6..4b17f1d6063d4 100644
--- a/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test
+++ b/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test
@@ -24,6 +24,15 @@
; RUN: %p/Inputs/test-dwarf-clang.o 2>&1 | \
; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+; If `--output-sort=none`, LVReader::sortScopes() has no effect and elements are
+; iterated in the order in which they were added (which matches the increasing
+; offset of the reference output).
+; RUN: llvm-debuginfo-analyzer --attribute=level,format \
+; RUN: --output-sort=none \
+; RUN: --print=scopes,symbols,types,lines,instructions \
+; RUN: %p/Inputs/test-dwarf-clang.o 2>&1 | \
+; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+
; RUN: llvm-debuginfo-analyzer --attribute=level,format \
; RUN: --output-sort=offset \
; RUN: --print=elements \
diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test b/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
index 7763426142476..97f0c35913830 100644
--- a/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
+++ b/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
@@ -110,6 +110,7 @@ HELP-ALL: --output-file=<filename> - Redirect output to the specified file.
HELP-ALL: --output-folder=<pathname> - Folder name for view splitting.
HELP-ALL: --output-level=<N> - Only print to a depth of N elements.
HELP-ALL: --output-sort=<value> - Primary key when ordering logical view (default: line).
+HELP-ALL: =none - Unsorted output (i.e. as read from input).
HELP-ALL: =kind - Sort by element kind.
HELP-ALL: =line - Sort by element line number.
HELP-ALL: =name - Sort by element name.
diff --git a/llvm/tools/llvm-debuginfo-analyzer/Options.cpp b/llvm/tools/llvm-debuginfo-analyzer/Options.cpp
index 79e2edccc50b8..b7e337bc21c61 100644
--- a/llvm/tools/llvm-debuginfo-analyzer/Options.cpp
+++ b/llvm/tools/llvm-debuginfo-analyzer/Options.cpp
@@ -198,7 +198,9 @@ static cl::opt<LVSortMode, true> OutputSort(
"output-sort", cl::cat(OutputCategory),
cl::desc("Primary key when ordering logical view (default: line)."),
cl::Hidden, cl::ZeroOrMore,
- values(clEnumValN(LVSortMode::Kind, "kind", "Sort by element kind."),
+ values(clEnumValN(LVSortMode::None, "none",
+ "Unsorted output (i.e. as read from input)."),
+ clEnumValN(LVSortMode::Kind, "kind", "Sort by element kind."),
clEnumValN(LVSortMode::Line, "line", "Sort by element line number."),
clEnumValN(LVSortMode::Name, "name", "Sort by element name."),
clEnumValN(LVSortMode::Offset, "offset", "Sort by element offset.")),
|
@llvm/pr-subscribers-llvm-binary-utilities Author: Javier Lopez-Gomez (jalopezg-git) ChangesAdd the For the available readers, this matches Full diff: https://github.com/llvm/llvm-project/pull/145761.diff 5 Files Affected:
diff --git a/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst b/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
index 1264f80206618..3d9b53c2c5a0d 100644
--- a/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
+++ b/llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
@@ -365,6 +365,7 @@ output for a single compilation unit.
.. code-block:: text
+ =none: Unsorted output (i.e. as read from input).
=kind: Sort by element kind.
=line: Sort by element line number.
=name: Sort by element name.
diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test b/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test
index be2085a187eb9..763d31ec54754 100644
--- a/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test
+++ b/llvm/test/tools/llvm-debuginfo-analyzer/COFF/01-coff-print-basic-details.test
@@ -24,6 +24,15 @@
; RUN: %p/Inputs/test-codeview-clang.o 2>&1 | \
; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+; If `--output-sort=none`, LVReader::sortScopes() has no effect and elements are
+; iterated in the order in which they were added (which matches the increasing
+; offset of the reference output).
+; RUN: llvm-debuginfo-analyzer --attribute=level,format \
+; RUN: --output-sort=none \
+; RUN: --print=scopes,symbols,types,lines,instructions \
+; RUN: %p/Inputs/test-codeview-clang.o 2>&1 | \
+; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+
; RUN: llvm-debuginfo-analyzer --attribute=level,format \
; RUN: --output-sort=offset \
; RUN: --print=elements \
diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test b/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test
index 54dbd7466e4f6..4b17f1d6063d4 100644
--- a/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test
+++ b/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/01-dwarf-print-basic-details.test
@@ -24,6 +24,15 @@
; RUN: %p/Inputs/test-dwarf-clang.o 2>&1 | \
; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+; If `--output-sort=none`, LVReader::sortScopes() has no effect and elements are
+; iterated in the order in which they were added (which matches the increasing
+; offset of the reference output).
+; RUN: llvm-debuginfo-analyzer --attribute=level,format \
+; RUN: --output-sort=none \
+; RUN: --print=scopes,symbols,types,lines,instructions \
+; RUN: %p/Inputs/test-dwarf-clang.o 2>&1 | \
+; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s
+
; RUN: llvm-debuginfo-analyzer --attribute=level,format \
; RUN: --output-sort=offset \
; RUN: --print=elements \
diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test b/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
index 7763426142476..97f0c35913830 100644
--- a/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
+++ b/llvm/test/tools/llvm-debuginfo-analyzer/cmdline.test
@@ -110,6 +110,7 @@ HELP-ALL: --output-file=<filename> - Redirect output to the specified file.
HELP-ALL: --output-folder=<pathname> - Folder name for view splitting.
HELP-ALL: --output-level=<N> - Only print to a depth of N elements.
HELP-ALL: --output-sort=<value> - Primary key when ordering logical view (default: line).
+HELP-ALL: =none - Unsorted output (i.e. as read from input).
HELP-ALL: =kind - Sort by element kind.
HELP-ALL: =line - Sort by element line number.
HELP-ALL: =name - Sort by element name.
diff --git a/llvm/tools/llvm-debuginfo-analyzer/Options.cpp b/llvm/tools/llvm-debuginfo-analyzer/Options.cpp
index 79e2edccc50b8..b7e337bc21c61 100644
--- a/llvm/tools/llvm-debuginfo-analyzer/Options.cpp
+++ b/llvm/tools/llvm-debuginfo-analyzer/Options.cpp
@@ -198,7 +198,9 @@ static cl::opt<LVSortMode, true> OutputSort(
"output-sort", cl::cat(OutputCategory),
cl::desc("Primary key when ordering logical view (default: line)."),
cl::Hidden, cl::ZeroOrMore,
- values(clEnumValN(LVSortMode::Kind, "kind", "Sort by element kind."),
+ values(clEnumValN(LVSortMode::None, "none",
+ "Unsorted output (i.e. as read from input)."),
+ clEnumValN(LVSortMode::Kind, "kind", "Sort by element kind."),
clEnumValN(LVSortMode::Line, "line", "Sort by element line number."),
clEnumValN(LVSortMode::Name, "name", "Sort by element name."),
clEnumValN(LVSortMode::Offset, "offset", "Sort by element offset.")),
|
Add the
--output-sort=none
option. PerLVReader::sortScopes()
,LVScope::sort()
is called on the root scope.LVScope::sort()
has no effect ifgetSortFunction() == nullptr
, and thus the elements are traversed in the order in which they were initially added.For the available readers, this matches
--output-sort=offset
. Tests were updated accordingly.