Closed Bug 1679763 Opened 3 years ago Closed 3 years ago

Explicitly instantiate often-used profiler templates

Categories

(Core :: Gecko Profiler, task, P3)

task

Tracking

()

RESOLVED FIXED
85 Branch
Tracking Status
firefox85 --- fixed

People

(Reporter: sg, Assigned: sg)

Details

Attachments

(1 file)

No description provided.
Severity: -- → N/A
Priority: -- → P3

For more context, this bug was spawned from bug 1676361 comment 5, in particular:

ClangBuildAnalyzer identifies these as among the templates that are most costly to instantiate:

  4017 ms: mozilla::baseprofiler::AddMarker<mozilla::baseprofiler::markers::Text, std::__cxx11::basic_string<char>> (527 times, avg 7 ms)
  4010 ms: mozilla::baseprofiler::AddMarkerToBuffer<mozilla::baseprofiler::markers::NoPayload> (527 times, avg 7 ms)
  3932 ms: mozilla::baseprofiler::AddMarkerToBuffer<mozilla::baseprofiler::markers::Text, std::__cxx11::basic_string<char>> (527 times, avg 7 ms)
  3906 ms: mozilla::base_profiler_markers_detail::AddMarkerToBuffer<mozilla::baseprofiler::markers::NoPayload> (527 times, avg 7 ms)
  3832 ms: mozilla::base_profiler_markers_detail::AddMarkerToBuffer<mozilla::baseprofiler::markers::Text, std::__cxx11::basic_string<char>> (527 times, avg 7 ms)
  3669 ms: mozilla::base_profiler_markers_detail::AddMarkerWithOptionalStackToBuffer<mozilla::baseprofiler::markers::NoPayload> (527 times, avg 6 ms)
  3570 ms: mozilla::base_profiler_markers_detail::AddMarkerWithOptionalStackToBuffer<mozilla::baseprofiler::markers::Text, std::__cxx11::basic_string<char>> (527 times, avg 6 ms)
  3390 ms: mozilla::base_profiler_markers_detail::MarkerTypeSerialization<mozilla::baseprofiler::markers::Text>::Serialize<std::__cxx11::basic_string<char>> (527 times, avg 6 ms)
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fdd4de984fd3
Explicitly instantiate often-used profiler templates. r=gerald

Backed out changeset fdd4de984fd3 (bug 1679763) for profiler related bustage.

Push with failure: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&fromchange=fdd4de984fd395a445ad0a13c64d0c66cbeb9e11&searchStr=build&tochange=cc51b2d4ae85fa2bcdc0f184d0436e806a7bcbbd&selectedTaskRun=fTBZVTcRS5SC0xrax7kS1w.0

Backout link: https://hg.mozilla.org/integration/autoland/rev/3b89114798ca6df93ac4a5e6035720fd4c65eeb0

Failure log: https://treeherder.mozilla.org/logviewer?job_id=323340036&repo=autoland&lineNumber=8444

[task 2020-12-02T18:06:19.705Z] 18:06:19     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/mozglue/baseprofiler'
[task 2020-12-02T18:06:19.705Z] 18:06:19     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -Xclang -std=c++17 -m32 -Foshared-libraries-win32.obj -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -Xclang -ftrivial-auto-var-init=pattern -guard:cf -DDEBUG=1 -DIMPL_MFBT -DMOZ_VTUNE_INSTRUMENTATION -DIMPL_MFBT -DMOZ_HAS_MOZGLUE -I/builds/worker/checkouts/gecko/mozglue/baseprofiler -I/builds/worker/workspace/obj-build/mozglue/baseprofiler -I/builds/worker/checkouts/gecko/mozglue/baseprofiler/core -I/builds/worker/checkouts/gecko/mozglue/linker -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -MD -FI /builds/worker/workspace/obj-build/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -Qunused-arguments -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -arch:SSE2 -Gw -Wno-inline-new-delete -Wno-invalid-offsetof -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror -Xclang -fexperimental-new-pass-manager  -Xclang -MP -Xclang -dependency-file -Xclang .deps/shared-libraries-win32.obj.pp -Xclang -MT -Xclang shared-libraries-win32.obj   /builds/worker/checkouts/gecko/mozglue/baseprofiler/core/shared-libraries-win32.cc
[task 2020-12-02T18:06:19.707Z] 18:06:19     INFO -  In file included from /builds/worker/checkouts/gecko/mozglue/baseprofiler/core/shared-libraries-win32.cc:11:
[task 2020-12-02T18:06:19.707Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/BaseProfilerSharedLibraries.h:10:
[task 2020-12-02T18:06:19.709Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/BaseProfiler.h:711:
[task 2020-12-02T18:06:19.710Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/BaseProfilerMarkers.h:34:
[task 2020-12-02T18:06:19.714Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/BaseProfilerMarkersDetail.h:14:
[task 2020-12-02T18:06:19.714Z] 18:06:19     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/BaseProfilerMarkersPrerequisites.h(865,39): error: explicit instantiation of 'emplace_back' does not refer to a function template, variable template, member function, member class, or static data member
[task 2020-12-02T18:06:19.714Z] 18:06:19     INFO -  mozilla::MarkerSchema::DataRowVector::emplace_back(
[task 2020-12-02T18:06:19.714Z] 18:06:19     INFO -                                        ^
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  /builds/worker/checkouts/gecko/vs2017_15.8.4/VC/include/vector(915,18): note: candidate template ignored: could not match 'decltype(auto)' against 'mozilla::Variant<mozilla::MarkerSchema::DynamicData, mozilla::MarkerSchema::StaticData> &'
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -                  decltype(auto) emplace_back(_Valty&&... _Val)
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -                                 ^
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  In file included from /builds/worker/checkouts/gecko/mozglue/baseprofiler/core/shared-libraries-win32.cc:11:
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/BaseProfilerSharedLibraries.h:10:
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/BaseProfiler.h:711:
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/BaseProfilerMarkers.h:34:
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/BaseProfilerMarkersDetail.h:14:
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/BaseProfilerMarkersPrerequisites.h(870,39): error: explicit instantiation of 'emplace_back' does not refer to a function template, variable template, member function, member class, or static data member
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  mozilla::MarkerSchema::DataRowVector::emplace_back(
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -                                        ^
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  /builds/worker/checkouts/gecko/vs2017_15.8.4/VC/include/vector(915,18): note: candidate template ignored: could not match 'decltype(auto)' against 'mozilla::Variant<mozilla::MarkerSchema::DynamicData, mozilla::MarkerSchema::StaticData> &'
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -                  decltype(auto) emplace_back(_Valty&&... _Val)
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -                                 ^
[task 2020-12-02T18:06:19.715Z] 18:06:19     INFO -  2 errors generated.
[task 2020-12-02T18:06:19.715Z] 18:06:19    ERROR -  make[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:676: shared-libraries-win32.obj] Error 1
[task 2020-12-02T18:06:19.716Z] 18:06:19     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/mozglue/baseprofiler'
[task 2020-12-02T18:06:19.716Z] 18:06:19     INFO -  make[4]: *** Waiting for unfinished jobs....
Flags: needinfo?(sgiesecke)

It looks like we can't instantiate std::vector::emplace_back explicitly in a portable way. I'll remove that part.

Flags: needinfo?(sgiesecke)
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bbaec7089a14
Explicitly instantiate often-used profiler templates. r=gerald
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 85 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: