llvm-project/clang/lib
Dean Michael Berris 1a5b10d5b4 [XRay][clang] Introduce -fxray-always-emit-customevents
Summary:
The -fxray-always-emit-customevents flag instructs clang to always emit
the LLVM IR for calls to the `__xray_customevent(...)` built-in
function. The default behaviour currently respects whether the function
has an `[[clang::xray_never_instrument]]` attribute, and thus not lower
the appropriate IR code for the custom event built-in.

This change allows users calling through to the
`__xray_customevent(...)` built-in to always see those calls lowered to
the corresponding LLVM IR to lay down instrumentation points for these
custom event calls.

Using this flag enables us to emit even just the user-provided custom
events even while never instrumenting the start/end of the function
where they appear. This is useful in cases where "phase markers" using
__xray_customevent(...) can have very few instructions, must never be
instrumented when entered/exited.

Reviewers: rnk, dblaikie, kpw

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D40601

llvm-svn: 319388
2017-11-30 00:04:54 +00:00
..
ARCMigrate Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC. 2017-06-03 06:23:19 +00:00
AST [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-29 23:27:36 +00:00
ASTMatchers Add the hasDefinition() AST matcher to match class declarations that also have a definition. 2017-11-29 21:21:51 +00:00
Analysis [analyzer] Teach RetainCountChecker about CoreMedia APIs 2017-11-25 14:57:42 +00:00
Basic Toolchain: Normalize dwarf, sjlj and seh eh 2017-11-29 07:25:12 +00:00
CodeGen [XRay][clang] Introduce -fxray-always-emit-customevents 2017-11-30 00:04:54 +00:00
CrossTU [CrossTU] Fix handling of Cross Translation Unit directory path 2017-10-27 12:53:37 +00:00
Driver [XRay][clang] Introduce -fxray-always-emit-customevents 2017-11-30 00:04:54 +00:00
Edit [clang] Fix format specifiers fixits for nested macros 2017-06-20 20:46:58 +00:00
Format Fix 'control reaches end of non-void' warning by using llvm_unreachable. 2017-11-29 15:09:12 +00:00
Frontend [XRay][clang] Introduce -fxray-always-emit-customevents 2017-11-30 00:04:54 +00:00
FrontendTool [CMake] Use #cmakedefine01 for CLANG_ENABLE_(ARCMT|OBJC_REWRITER|STATIC_ANALYZER) 2017-10-18 05:21:17 +00:00
Headers [OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short 2017-11-27 09:14:17 +00:00
Index [index] tag declarations should use the decl role instead of ref 2017-11-09 20:50:59 +00:00
Lex [refactor][extract] insert semicolons into extracted/inserted code 2017-11-03 18:11:22 +00:00
Parse [OPENMP] Initial support for asynchronous data update, NFC. 2017-11-21 17:08:48 +00:00
Rewrite [Analyzer] Add support for displaying cross-file diagnostic paths in HTML output 2017-08-03 18:12:22 +00:00
Sema MS ABI: Treat explicit instantiation definitions of dllimport function templates as explicit instantiation decls (PR35435) 2017-11-29 23:44:11 +00:00
Serialization [OPENMP] Add support for cancel constructs in `target teams distribute 2017-11-22 21:12:03 +00:00
StaticAnalyzer [analyzer] Fix unreachable creating PathDiagnosticLocation with widen-loops=true 2017-11-29 18:25:37 +00:00
Tooling [Tooling] Acknowledge that many CompilationDatabases don't support enumeration. 2017-11-24 12:13:55 +00:00
CMakeLists.txt Add Cross Translation Unit support library 2017-09-22 11:11:01 +00:00