After {D115416}, the "Write map file" event no longer shows up
in the time trace. Each time trace profiler instance is thread-local,
but we had neglected to initialize a separate instance for the mapfile
worker thread.
Reviewed By: keith
Differential Revision: https://reviews.llvm.org/D117069
sortSegmentsAndSections();
createLoadCommands<LP>();
finalizeAddresses();
- threadPool.async(writeMapFile);
+ threadPool.async([&] {
+ if (LLVM_ENABLE_THREADS && config->timeTraceEnabled)
+ timeTraceProfilerInitialize(config->timeTraceGranularity, "writeMapFile");
+ writeMapFile();
+ if (LLVM_ENABLE_THREADS && config->timeTraceEnabled)
+ timeTraceProfilerFinishThread();
+ });
finalizeLinkEditSegment();
writeOutputFile();
}
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/foo.s -o %t/foo.o
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/test.s -o %t/test.o
-# RUN: %lld -map %t/map %t/test.o %t/foo.o -o %t/test-map
+# RUN: %lld -map %t/map %t/test.o %t/foo.o --time-trace -o %t/test-map
# RUN: llvm-objdump --syms --section-headers %t/test-map > %t/objdump
# RUN: cat %t/objdump %t/map > %t/out
# RUN: FileCheck %s < %t/out
+# RUN: FileCheck %s --check-prefix=MAPFILE < %t/test-map.time-trace
#--- foo.s
.section __TEXT,obj
# CHECK-NEXT: 0x[[#NUMBER]] [ 1] _number
# CHECK-NEXT: 0x[[#MAIN]] [ 1] _main
# CHECK-NEXT: 0x[[#FOO]] [ 2] _foo
+
+# MAPFILE: "name":"Write map file"