[llvm-dev] RFC: XRay in the LLVM Library

Serge Rogatch via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 14 09:59:32 PST 2016


I would opt for a simpler approach. Backward and forward compatibility
complicates development and design, because with new versions the number of
combinations to support grows O(N*N) . Multitude of formats further
complicates things O(M*M) in the number of formats at worst.

If at each time there is 1 main format (and it's volatile over time), and a
tool for conversion from a previous version is implemented via "chain of
responsibility" pattern where each link converts between 2 adjacent
versions, then the development is most simplified.

So for now only a header containing of a magic number (denoting it's XRay
format) and a version number is needed. No need to predict how it goes in
the future.

The problem of code duplication between compiler-rt and LLVM repositories
due to format writer living in one and reader living in another, seems
severe. I don't know a better solution than "if we have to duplicate,
duplicate trivially": instead of implementing the format reader only in
LLVM and format writer in compiler-rt, thus getting scattered pieces of one
whole - implement both writing and reading logic in the same files, and
just copy-paste the files between the repositories (or better, do this in
separate directories and keep them identical in LLVM and compiler-rt). I
assume that creation of a separate repository containing just the XRay
common code, and making it a dependency of both LLVM and compiler-rt is not
an option. Though I am curious how LLVM community was earlier solving
similar problems.

Anything else I can help with?

Cheers,
Serge
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161214/e577e00a/attachment.html>


More information about the llvm-dev mailing list