1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/test
Dean Michael Berris b3cb9bd89d XRay: Add entry and exit sleds
Summary:
In this patch we implement the following parts of XRay:

- Supporting a function attribute named 'function-instrument' which currently only supports 'xray-always'. We should be able to use this attribute for other instrumentation approaches.
- Supporting a function attribute named 'xray-instruction-threshold' used to determine whether a function is instrumented with a minimum number of instructions (IR instruction counts).
- X86-specific nop sleds as described in the white paper.
- A machine function pass that adds the different instrumentation marker instructions at a very late stage.
- A way of identifying which return opcode is considered "normal" for each architecture.

There are some caveats here:

1) We don't handle PATCHABLE_RET in platforms other than x86_64 yet -- this means if IR used PATCHABLE_RET directly instead of a normal ret, instruction lowering for that platform might do the wrong thing. We think this should be handled at instruction selection time to by default be unpacked for platforms where XRay is not availble yet.

2) The generated section for X86 is different from what is described from the white paper for the sole reason that LLVM allows us to do this neatly. We're taking the opportunity to deviate from the white paper from this perspective to allow us to get richer information from the runtime library.

Reviewers: sanjoy, eugenis, kcc, pcc, echristo, rnk

Subscribers: niravd, majnemer, atrick, rnk, emaste, bmakam, mcrosier, mehdi_amini, llvm-commits

Differential Revision: http://reviews.llvm.org/D19904

llvm-svn: 275367
2016-07-14 04:06:33 +00:00
..
Analysis [BFI] Add new LazyBFI analysis pass 2016-07-13 05:01:48 +00:00
Assembler [ConstantFold] Don't incorrectly infer inbounds on array GEP 2016-07-13 03:24:41 +00:00
Bindings Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
BugPoint
CodeGen XRay: Add entry and exit sleds 2016-07-14 04:06:33 +00:00
DebugInfo Synchronize LLVM and clang's ObjCDeclSpec::ObjCPropertyAttributeKind. 2016-07-14 00:41:18 +00:00
Examples
ExecutionEngine ExecutionEngine: add preliminary support for COFF ARM 2016-06-24 14:11:44 +00:00
Feature Temporarily remove a test case to unblock PPC bots. 2016-07-08 00:35:39 +00:00
FileCheck
Instrumentation [tsan] Try harder to not instrument gcov counters 2016-07-07 22:45:28 +00:00
Integer
JitListener
LibDriver
Linker Don't verify inputs to the Linker if ODR merging. 2016-06-29 18:31:48 +00:00
LTO Add a libLTO API to query a memory buffer and check if it contains ObjC categories 2016-07-11 23:10:18 +00:00
MC [MC] Fix lexing ordering in assembly label parsing to preserve same line 2016-07-13 14:03:12 +00:00
Object Add checks to the MachOObjectFile() constructor to make sure load commands sizes 2016-07-07 22:11:42 +00:00
ObjectYAML [YAML] Fix YAML tags appearing before the start of sequence elements 2016-06-28 21:10:26 +00:00
Other Temporarily remove one test run line to unblock PPC bots. 2016-07-08 00:32:58 +00:00
SymbolRewriter
TableGen tests: accept different TargetOpcode values. 2016-07-07 17:51:42 +00:00
ThinLTO/X86 ThinLTO: Do not take into account whether a definition has multiple copies when promoting. 2016-07-07 18:31:51 +00:00
tools [ThinLTO/gold] Enable symbol resolution in distributed backend case 2016-07-13 16:35:56 +00:00
Transforms [IPSCCP] Constant fold struct argument/instructions when all the lattice values are constant. 2016-07-14 02:51:41 +00:00
Unit
Verifier Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg Review fixes to lit documentation 2016-07-12 20:59:17 +00:00
lit.site.cfg.in
TestRunner.sh