[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