-
Notifications
You must be signed in to change notification settings - Fork 12.4k
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
[Support][LLD] .time-trace.json Default File Extension #122207
base: main
Are you sure you want to change the base?
Conversation
@llvm/pr-subscribers-lld-elf @llvm/pr-subscribers-lld-coff Author: Miguel A. Arroyo (mayanez) Changes
Full diff: https://github.com/llvm/llvm-project/pull/122207.diff 9 Files Affected:
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 0c24156ae16799..966bb40027bafd 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -48,6 +48,8 @@ Breaking changes
was a binutils-internal relocation used during relaxation, and was not
emitted by compilers/assemblers.
+* The default extension for time trace files is now ``.time-trace.json``.
+
COFF Improvements
-----------------
* ``/includeglob`` has been implemented to match the behavior of ``--undefined-glob`` available for ELF.
diff --git a/lld/test/COFF/time-trace.s b/lld/test/COFF/time-trace.s
index 436da2483a54f6..8a03abdbbf3696 100644
--- a/lld/test/COFF/time-trace.s
+++ b/lld/test/COFF/time-trace.s
@@ -4,7 +4,7 @@
# Test implicit trace file name
# RUN: lld-link %t.obj /entry:main /out:%t1.exe --time-trace --time-trace-granularity=0
-# RUN: cat %t1.exe.time-trace \
+# RUN: cat %t1.exe.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/lld/test/ELF/lto/thinlto-time-trace.ll b/lld/test/ELF/lto/thinlto-time-trace.ll
index 2213a3051f52be..76d54be3dc7b45 100644
--- a/lld/test/ELF/lto/thinlto-time-trace.ll
+++ b/lld/test/ELF/lto/thinlto-time-trace.ll
@@ -6,13 +6,13 @@
; Test single-threaded
; RUN: ld.lld --thinlto-jobs=1 --time-trace --time-trace-granularity=0 -shared %t1.o %t2.o -o %t3.so
-; RUN: cat %t3.so.time-trace \
+; RUN: cat %t3.so.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
; Test multi-threaded
; RUN: ld.lld --time-trace --time-trace-granularity=0 -shared %t1.o %t2.o -o %t4.so
-; RUN: cat %t4.so.time-trace \
+; RUN: cat %t4.so.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
diff --git a/lld/test/ELF/time-trace.s b/lld/test/ELF/time-trace.s
index 0a2e76e936b95d..74ef567b2b17de 100644
--- a/lld/test/ELF/time-trace.s
+++ b/lld/test/ELF/time-trace.s
@@ -3,7 +3,7 @@
# Test implicit trace file name
# RUN: ld.lld --time-trace --time-trace-granularity=0 -o %t1.elf %t.o
-# RUN: cat %t1.elf.time-trace \
+# RUN: cat %t1.elf.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/lld/test/MachO/map-file.s b/lld/test/MachO/map-file.s
index aa9fff9938eb28..1c1ba5a4a2d565 100644
--- a/lld/test/MachO/map-file.s
+++ b/lld/test/MachO/map-file.s
@@ -15,7 +15,7 @@
## Also check that we don't have redundant EH_Frame symbols (regression test)
# RUN: cat %t/objdump %t/map | FileCheck %s --implicit-check-not _hello_world \
# RUN: --implicit-check-not EH_Frame
-# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test.time-trace
+# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test.time-trace.json
# CHECK: Sections:
# CHECK-NEXT: Idx Name Size VMA Type
diff --git a/lld/test/MachO/thinlto-time-trace.ll b/lld/test/MachO/thinlto-time-trace.ll
index de2116fa47f2bc..14c697aebf51d1 100644
--- a/lld/test/MachO/thinlto-time-trace.ll
+++ b/lld/test/MachO/thinlto-time-trace.ll
@@ -5,7 +5,7 @@
; RUN: opt -module-summary %t/f.s -o %t/f.o
; RUN: opt -module-summary %t/g.s -o %t/g.o
; RUN: %lld --time-trace --time-trace-granularity=0 -dylib %t/f.o %t/g.o -o %t/libTest.dylib
-; RUN: cat %t/libTest.dylib.time-trace \
+; RUN: cat %t/libTest.dylib.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
diff --git a/lld/test/MachO/time-trace.s b/lld/test/MachO/time-trace.s
index aa21bf8a1a4289..c113421cd781bf 100644
--- a/lld/test/MachO/time-trace.s
+++ b/lld/test/MachO/time-trace.s
@@ -7,7 +7,7 @@
## Test implicit trace file name
# RUN: %lld --time-trace --time-trace-granularity=0 -o %t1.macho %t.o
-# RUN: cat %t1.macho.time-trace \
+# RUN: cat %t1.macho.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/llvm/include/llvm/Support/TimeProfiler.h b/llvm/include/llvm/Support/TimeProfiler.h
index 679e157f3dfd82..04f8ae8e8e2939 100644
--- a/llvm/include/llvm/Support/TimeProfiler.h
+++ b/llvm/include/llvm/Support/TimeProfiler.h
@@ -83,6 +83,8 @@ namespace llvm {
class raw_pwrite_stream;
+static constexpr const auto TimeTraceFileExtension = ".time-trace.json";
+
// Type of the time trace event.
enum class TimeTraceEventType {
// Complete events have a duration (start and end time points) and are marked
@@ -137,7 +139,7 @@ void timeTraceProfilerWrite(raw_pwrite_stream &OS);
/// Write profiling data to a file.
/// The function will write to \p PreferredFileName if provided, if not
-/// then will write to \p FallbackFileName appending .time-trace.
+/// then will write to \p FallbackFileName appending .time-trace.json.
/// Returns a StringError indicating a failure if the function is
/// unable to open the file for writing.
Error timeTraceProfilerWrite(StringRef PreferredFileName,
diff --git a/llvm/lib/Support/TimeProfiler.cpp b/llvm/lib/Support/TimeProfiler.cpp
index 865a663115e1ed..d14da3ea2942d6 100644
--- a/llvm/lib/Support/TimeProfiler.cpp
+++ b/llvm/lib/Support/TimeProfiler.cpp
@@ -434,7 +434,7 @@ Error llvm::timeTraceProfilerWrite(StringRef PreferredFileName,
std::string Path = PreferredFileName.str();
if (Path.empty()) {
Path = FallbackFileName == "-" ? "out" : FallbackFileName.str();
- Path += ".time-trace";
+ Path += TimeTraceFileExtension;
}
std::error_code EC;
|
@llvm/pr-subscribers-lld Author: Miguel A. Arroyo (mayanez) Changes
Full diff: https://github.com/llvm/llvm-project/pull/122207.diff 9 Files Affected:
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 0c24156ae16799..966bb40027bafd 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -48,6 +48,8 @@ Breaking changes
was a binutils-internal relocation used during relaxation, and was not
emitted by compilers/assemblers.
+* The default extension for time trace files is now ``.time-trace.json``.
+
COFF Improvements
-----------------
* ``/includeglob`` has been implemented to match the behavior of ``--undefined-glob`` available for ELF.
diff --git a/lld/test/COFF/time-trace.s b/lld/test/COFF/time-trace.s
index 436da2483a54f6..8a03abdbbf3696 100644
--- a/lld/test/COFF/time-trace.s
+++ b/lld/test/COFF/time-trace.s
@@ -4,7 +4,7 @@
# Test implicit trace file name
# RUN: lld-link %t.obj /entry:main /out:%t1.exe --time-trace --time-trace-granularity=0
-# RUN: cat %t1.exe.time-trace \
+# RUN: cat %t1.exe.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/lld/test/ELF/lto/thinlto-time-trace.ll b/lld/test/ELF/lto/thinlto-time-trace.ll
index 2213a3051f52be..76d54be3dc7b45 100644
--- a/lld/test/ELF/lto/thinlto-time-trace.ll
+++ b/lld/test/ELF/lto/thinlto-time-trace.ll
@@ -6,13 +6,13 @@
; Test single-threaded
; RUN: ld.lld --thinlto-jobs=1 --time-trace --time-trace-granularity=0 -shared %t1.o %t2.o -o %t3.so
-; RUN: cat %t3.so.time-trace \
+; RUN: cat %t3.so.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
; Test multi-threaded
; RUN: ld.lld --time-trace --time-trace-granularity=0 -shared %t1.o %t2.o -o %t4.so
-; RUN: cat %t4.so.time-trace \
+; RUN: cat %t4.so.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
diff --git a/lld/test/ELF/time-trace.s b/lld/test/ELF/time-trace.s
index 0a2e76e936b95d..74ef567b2b17de 100644
--- a/lld/test/ELF/time-trace.s
+++ b/lld/test/ELF/time-trace.s
@@ -3,7 +3,7 @@
# Test implicit trace file name
# RUN: ld.lld --time-trace --time-trace-granularity=0 -o %t1.elf %t.o
-# RUN: cat %t1.elf.time-trace \
+# RUN: cat %t1.elf.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/lld/test/MachO/map-file.s b/lld/test/MachO/map-file.s
index aa9fff9938eb28..1c1ba5a4a2d565 100644
--- a/lld/test/MachO/map-file.s
+++ b/lld/test/MachO/map-file.s
@@ -15,7 +15,7 @@
## Also check that we don't have redundant EH_Frame symbols (regression test)
# RUN: cat %t/objdump %t/map | FileCheck %s --implicit-check-not _hello_world \
# RUN: --implicit-check-not EH_Frame
-# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test.time-trace
+# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test.time-trace.json
# CHECK: Sections:
# CHECK-NEXT: Idx Name Size VMA Type
diff --git a/lld/test/MachO/thinlto-time-trace.ll b/lld/test/MachO/thinlto-time-trace.ll
index de2116fa47f2bc..14c697aebf51d1 100644
--- a/lld/test/MachO/thinlto-time-trace.ll
+++ b/lld/test/MachO/thinlto-time-trace.ll
@@ -5,7 +5,7 @@
; RUN: opt -module-summary %t/f.s -o %t/f.o
; RUN: opt -module-summary %t/g.s -o %t/g.o
; RUN: %lld --time-trace --time-trace-granularity=0 -dylib %t/f.o %t/g.o -o %t/libTest.dylib
-; RUN: cat %t/libTest.dylib.time-trace \
+; RUN: cat %t/libTest.dylib.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
diff --git a/lld/test/MachO/time-trace.s b/lld/test/MachO/time-trace.s
index aa21bf8a1a4289..c113421cd781bf 100644
--- a/lld/test/MachO/time-trace.s
+++ b/lld/test/MachO/time-trace.s
@@ -7,7 +7,7 @@
## Test implicit trace file name
# RUN: %lld --time-trace --time-trace-granularity=0 -o %t1.macho %t.o
-# RUN: cat %t1.macho.time-trace \
+# RUN: cat %t1.macho.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/llvm/include/llvm/Support/TimeProfiler.h b/llvm/include/llvm/Support/TimeProfiler.h
index 679e157f3dfd82..04f8ae8e8e2939 100644
--- a/llvm/include/llvm/Support/TimeProfiler.h
+++ b/llvm/include/llvm/Support/TimeProfiler.h
@@ -83,6 +83,8 @@ namespace llvm {
class raw_pwrite_stream;
+static constexpr const auto TimeTraceFileExtension = ".time-trace.json";
+
// Type of the time trace event.
enum class TimeTraceEventType {
// Complete events have a duration (start and end time points) and are marked
@@ -137,7 +139,7 @@ void timeTraceProfilerWrite(raw_pwrite_stream &OS);
/// Write profiling data to a file.
/// The function will write to \p PreferredFileName if provided, if not
-/// then will write to \p FallbackFileName appending .time-trace.
+/// then will write to \p FallbackFileName appending .time-trace.json.
/// Returns a StringError indicating a failure if the function is
/// unable to open the file for writing.
Error timeTraceProfilerWrite(StringRef PreferredFileName,
diff --git a/llvm/lib/Support/TimeProfiler.cpp b/llvm/lib/Support/TimeProfiler.cpp
index 865a663115e1ed..d14da3ea2942d6 100644
--- a/llvm/lib/Support/TimeProfiler.cpp
+++ b/llvm/lib/Support/TimeProfiler.cpp
@@ -434,7 +434,7 @@ Error llvm::timeTraceProfilerWrite(StringRef PreferredFileName,
std::string Path = PreferredFileName.str();
if (Path.empty()) {
Path = FallbackFileName == "-" ? "out" : FallbackFileName.str();
- Path += ".time-trace";
+ Path += TimeTraceFileExtension;
}
std::error_code EC;
|
@llvm/pr-subscribers-lld-macho Author: Miguel A. Arroyo (mayanez) Changes
Full diff: https://github.com/llvm/llvm-project/pull/122207.diff 9 Files Affected:
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 0c24156ae16799..966bb40027bafd 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -48,6 +48,8 @@ Breaking changes
was a binutils-internal relocation used during relaxation, and was not
emitted by compilers/assemblers.
+* The default extension for time trace files is now ``.time-trace.json``.
+
COFF Improvements
-----------------
* ``/includeglob`` has been implemented to match the behavior of ``--undefined-glob`` available for ELF.
diff --git a/lld/test/COFF/time-trace.s b/lld/test/COFF/time-trace.s
index 436da2483a54f6..8a03abdbbf3696 100644
--- a/lld/test/COFF/time-trace.s
+++ b/lld/test/COFF/time-trace.s
@@ -4,7 +4,7 @@
# Test implicit trace file name
# RUN: lld-link %t.obj /entry:main /out:%t1.exe --time-trace --time-trace-granularity=0
-# RUN: cat %t1.exe.time-trace \
+# RUN: cat %t1.exe.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/lld/test/ELF/lto/thinlto-time-trace.ll b/lld/test/ELF/lto/thinlto-time-trace.ll
index 2213a3051f52be..76d54be3dc7b45 100644
--- a/lld/test/ELF/lto/thinlto-time-trace.ll
+++ b/lld/test/ELF/lto/thinlto-time-trace.ll
@@ -6,13 +6,13 @@
; Test single-threaded
; RUN: ld.lld --thinlto-jobs=1 --time-trace --time-trace-granularity=0 -shared %t1.o %t2.o -o %t3.so
-; RUN: cat %t3.so.time-trace \
+; RUN: cat %t3.so.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
; Test multi-threaded
; RUN: ld.lld --time-trace --time-trace-granularity=0 -shared %t1.o %t2.o -o %t4.so
-; RUN: cat %t4.so.time-trace \
+; RUN: cat %t4.so.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
diff --git a/lld/test/ELF/time-trace.s b/lld/test/ELF/time-trace.s
index 0a2e76e936b95d..74ef567b2b17de 100644
--- a/lld/test/ELF/time-trace.s
+++ b/lld/test/ELF/time-trace.s
@@ -3,7 +3,7 @@
# Test implicit trace file name
# RUN: ld.lld --time-trace --time-trace-granularity=0 -o %t1.elf %t.o
-# RUN: cat %t1.elf.time-trace \
+# RUN: cat %t1.elf.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/lld/test/MachO/map-file.s b/lld/test/MachO/map-file.s
index aa9fff9938eb28..1c1ba5a4a2d565 100644
--- a/lld/test/MachO/map-file.s
+++ b/lld/test/MachO/map-file.s
@@ -15,7 +15,7 @@
## Also check that we don't have redundant EH_Frame symbols (regression test)
# RUN: cat %t/objdump %t/map | FileCheck %s --implicit-check-not _hello_world \
# RUN: --implicit-check-not EH_Frame
-# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test.time-trace
+# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test.time-trace.json
# CHECK: Sections:
# CHECK-NEXT: Idx Name Size VMA Type
diff --git a/lld/test/MachO/thinlto-time-trace.ll b/lld/test/MachO/thinlto-time-trace.ll
index de2116fa47f2bc..14c697aebf51d1 100644
--- a/lld/test/MachO/thinlto-time-trace.ll
+++ b/lld/test/MachO/thinlto-time-trace.ll
@@ -5,7 +5,7 @@
; RUN: opt -module-summary %t/f.s -o %t/f.o
; RUN: opt -module-summary %t/g.s -o %t/g.o
; RUN: %lld --time-trace --time-trace-granularity=0 -dylib %t/f.o %t/g.o -o %t/libTest.dylib
-; RUN: cat %t/libTest.dylib.time-trace \
+; RUN: cat %t/libTest.dylib.time-trace.json \
; RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
; RUN: | FileCheck %s
diff --git a/lld/test/MachO/time-trace.s b/lld/test/MachO/time-trace.s
index aa21bf8a1a4289..c113421cd781bf 100644
--- a/lld/test/MachO/time-trace.s
+++ b/lld/test/MachO/time-trace.s
@@ -7,7 +7,7 @@
## Test implicit trace file name
# RUN: %lld --time-trace --time-trace-granularity=0 -o %t1.macho %t.o
-# RUN: cat %t1.macho.time-trace \
+# RUN: cat %t1.macho.time-trace.json \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
diff --git a/llvm/include/llvm/Support/TimeProfiler.h b/llvm/include/llvm/Support/TimeProfiler.h
index 679e157f3dfd82..04f8ae8e8e2939 100644
--- a/llvm/include/llvm/Support/TimeProfiler.h
+++ b/llvm/include/llvm/Support/TimeProfiler.h
@@ -83,6 +83,8 @@ namespace llvm {
class raw_pwrite_stream;
+static constexpr const auto TimeTraceFileExtension = ".time-trace.json";
+
// Type of the time trace event.
enum class TimeTraceEventType {
// Complete events have a duration (start and end time points) and are marked
@@ -137,7 +139,7 @@ void timeTraceProfilerWrite(raw_pwrite_stream &OS);
/// Write profiling data to a file.
/// The function will write to \p PreferredFileName if provided, if not
-/// then will write to \p FallbackFileName appending .time-trace.
+/// then will write to \p FallbackFileName appending .time-trace.json.
/// Returns a StringError indicating a failure if the function is
/// unable to open the file for writing.
Error timeTraceProfilerWrite(StringRef PreferredFileName,
diff --git a/llvm/lib/Support/TimeProfiler.cpp b/llvm/lib/Support/TimeProfiler.cpp
index 865a663115e1ed..d14da3ea2942d6 100644
--- a/llvm/lib/Support/TimeProfiler.cpp
+++ b/llvm/lib/Support/TimeProfiler.cpp
@@ -434,7 +434,7 @@ Error llvm::timeTraceProfilerWrite(StringRef PreferredFileName,
std::string Path = PreferredFileName.str();
if (Path.empty()) {
Path = FallbackFileName == "-" ? "out" : FallbackFileName.str();
- Path += ".time-trace";
+ Path += TimeTraceFileExtension;
}
std::error_code EC;
|
lld
from.time-trace
to.time-trace.json
..lld.time-trace.json
though I've refrained from doing so in this PR to keep changes minimal.