[XRay][profiler] Part 3: Profile Collector Service
This is part of the larger XRay Profiling Mode effort.
This patch implements a centralised collector for FunctionCallTrie
instances, associated per thread. It maintains a global set of trie
instances which can be retrieved through the XRay API for processing
in-memory buffers (when registered). Future changes will include the
wiring to implement the actual profiling mode implementation.
This central service provides the following functionality:
- Posting a FunctionCallTrie associated with a thread, to the central list of tries.
- Serializing all the posted FunctionCallTrie instances into in-memory buffers.
- Resetting the global state of the serialized buffers and tries.
Depends on D45757.
Reviewers: echristo, pelikan, kpw
Reviewed By: kpw
Subscribers: llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D45758