This is an archive of the discontinued LLVM Phabricator instance.

[XRay][docs] XRay Framework Usage Guide
Needs ReviewPublic

Authored by dberris on Jan 2 2019, 10:03 PM.

Details

Reviewers
mboerger
jfb
Summary

This patch documents how the XRay framework, included in the XRay
runtime implementation in the compiler-rt project, can be used to extend
the current set of default "modes" that come with XRay by default.

In this document we try to address the most common usage patterns for
implementing XRay modes, both those used by the modes already in
compiler-rt and those that may live "out-of-tree" or "downstream".

We'll use this document to present the high level concepts, the
terminology, the semantics, and the guarantees/invariants maintained by
the XRay implementation.

Event Timeline

dberris created this revision.Jan 2 2019, 10:03 PM
dberris updated this revision to Diff 179998.Jan 2 2019, 10:05 PM

Add link to new doc in index.

dberris updated this revision to Diff 180189.Jan 3 2019, 6:46 PM
dberris retitled this revision from [XRay][docs] WIP: XRay Framework Usage Guide to [XRay][docs] XRay Framework Usage Guide.
dberris removed a subscriber: arphaman.

Update description.

greened added a subscriber: greened.Jan 7 2019, 7:58 AM
greened added inline comments.
llvm/docs/XRayFramework.rst
42

Three modes?

48

Use "we" here for consistency with the following text?

84

"tyuped?"

330

function_id?

396

What is this doing?

423

I don't understand this comment.

dberris updated this revision to Diff 180608.Jan 7 2019, 9:06 PM
dberris marked 5 inline comments as done.

Address comments by @greened.

llvm/docs/XRayFramework.rst
396

Updated with a comment.

423

Updated it to explain that the function-local *static* pointer is accessible as a global variable in the lambda which may not have captures.

dberris updated this revision to Diff 180609.Jan 7 2019, 9:26 PM
dberris marked 3 inline comments as done.

More updates to address some comments.

jklaehn added inline comments.
llvm/docs/XRayFramework.rst
98

Typo: failed