[lld] db851df - [lld-macho] Make time-trace* options more permissive.
Vy Nguyen via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 7 13:00:47 PDT 2021
Author: Vy Nguyen
Date: 2021-04-07T16:00:20-04:00
New Revision: db851dfb495822c3288d04e4809ecddb829d97be
URL: https://github.com/llvm/llvm-project/commit/db851dfb495822c3288d04e4809ecddb829d97be
DIFF: https://github.com/llvm/llvm-project/commit/db851dfb495822c3288d04e4809ecddb829d97be.diff
LOG: [lld-macho] Make time-trace* options more permissive.
If either `time-trace-granularity` or `time-trace-file` is specified, then don't make users specify `-time-trace`.
It seems silly that I have to type all three options, eg, `-time-trace -time-trace-file=- -time-trace-granularity=...`.
Differential Revision: https://reviews.llvm.org/D100011
Added:
Modified:
lld/MachO/Driver.cpp
lld/test/MachO/time-trace.s
Removed:
################################################################################
diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp
index 2f671649a749..736e4566eb4d 100644
--- a/lld/MachO/Driver.cpp
+++ b/lld/MachO/Driver.cpp
@@ -1033,7 +1033,9 @@ bool macho::link(ArrayRef<const char *> argsArr, bool canExitEarly,
config->progName = argsArr[0];
- config->timeTraceEnabled = args.hasArg(OPT_time_trace);
+ config->timeTraceEnabled = args.hasArg(OPT_time_trace) ||
+ args.hasArg(OPT_time_trace_granularity_eq) ||
+ args.hasArg(OPT_time_trace_file_eq);
config->timeTraceGranularity =
args::getInteger(args, OPT_time_trace_granularity_eq, 500);
diff --git a/lld/test/MachO/time-trace.s b/lld/test/MachO/time-trace.s
index b203055a020a..c4e5cc3d92cc 100644
--- a/lld/test/MachO/time-trace.s
+++ b/lld/test/MachO/time-trace.s
@@ -1,27 +1,27 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o
-# Test implicit trace file name
+## 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: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
-# Test specified trace file name
-# RUN: %lld --time-trace --time-trace-file=%t2.json --time-trace-granularity=0 -o %t2.macho %t.o
+## Test specified trace file name, also test that `--time-trace` is not needed if the other two are used.
+# RUN: %lld --time-trace-file=%t2.json --time-trace-granularity=0 -o %t2.macho %t.o
# RUN: cat %t2.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 trace requested to stdout
-# RUN: %lld --time-trace --time-trace-file=- --time-trace-granularity=0 -o %t3.macho %t.o \
+## Test trace requested to stdout, also test that `--time-trace` is not needed if the other two are used.
+# RUN: %lld --time-trace-file=- --time-trace-granularity=0 -o %t3.macho %t.o \
# RUN: | %python -c 'import json, sys; json.dump(json.loads(sys.stdin.read()), sys.stdout, sort_keys=True, indent=2)' \
# RUN: | FileCheck %s
# CHECK: "beginningOfTime": {{[0-9]{16},}}
# CHECK-NEXT: "traceEvents": [
-# Check one event has correct fields
+## Check one event has correct fields
# CHECK: "dur":
# CHECK-NEXT: "name":
# CHECK-NEXT: "ph":
@@ -29,10 +29,10 @@
# CHECK-NEXT: "tid":
# CHECK-NEXT: "ts":
-# Check there is an ExecuteLinker event
+## Check there is an ExecuteLinker event
# CHECK: "name": "ExecuteLinker"
-# Check process_name entry field
+## Check process_name entry field
# CHECK: "name": "ld64.lld{{(.exe)?}}"
# CHECK: "name": "process_name"
# CHECK: "name": "thread_name"
More information about the llvm-commits
mailing list