llvm/test
Dean Michael Berris d5e52ea44d [XRay][CodeGen] Use PIC-friendly code in XRay sleds; remove synthetic references in .text
Summary:
This change achieves two things:

  - Redefine the Custom Event handling instrumentation points emitted by
    the compiler to not require dynamic relocation of references to the
    __xray_CustomEvent trampoline.

  - Remove the synthetic reference we emit at the end of a function that
    we used to keep auxiliary sections alive in favour of SHF_LINK_ORDER
    associated with the section where the function is defined.

To achieve the custom event handling change, we've had to introduce the
concept of sled versioning -- this will need to be supported by the
runtime to allow us to understand how to turn on/off the new version of
the custom event handling sleds. That change has to land first before we
change the way we write the sleds.

To remove the synthetic reference, we rely on a relatively new linker
feature that preserves the sections that are associated with each other.
This allows us to limit the effects on the .text section of ELF
binaries.

Because we're still using absolute references that are resolved at
runtime for the instrumentation map (and function index) maps, we mark
these sections write-able. In the future we can re-define the entries in
the map to use relative relocations instead that can be statically
determined by the linker. That change will be a bit more invasive so we
defer this for later.

Depends on D36816.

Reviewers: dblaikie, echristo, pcc

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311525 91177308-0d34-0410-b5e6-96231b3b80d8
2017-08-23 04:49:41 +00:00
..
Analysis [CostModel][X86][XOP] Improve costs for XOP shuffles 2017-08-16 13:50:20 +00:00
Assembler [DI] Every DIGlobalVariable should have a type. 2017-08-16 13:39:07 +00:00
Bindings [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
Bitcode [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level 2017-08-21 21:49:13 +00:00
BugPoint
CodeGen [XRay][CodeGen] Use PIC-friendly code in XRay sleds; remove synthetic references in .text 2017-08-23 04:49:41 +00:00
DebugInfo [llvm-pdbutil] Add support for dumping detailed module stats. 2017-08-21 14:53:25 +00:00
DllTool [llvm-dlltool] Fix creating stdcall/fastcall import libraries for i386 2017-08-16 05:18:36 +00:00
Examples
ExecutionEngine [AsmParser] Recommit: Hash is not a comment on some targets 2017-08-21 09:58:37 +00:00
Feature
FileCheck [llvm] Remove redundant check-prefix=CHECK from tests. NFC. 2017-07-17 17:32:45 +00:00
Instrumentation [SanitizerCoverage] Optimize stack-depth instrumentation. 2017-08-22 21:28:29 +00:00
Integer
JitListener
LibDriver [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
Linker [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level 2017-08-21 21:49:13 +00:00
LTO Emit only A Single Opt Remark When Inlining 2017-08-21 16:45:47 +00:00
MC [ARM][AArch64] v8.3-A Javascript Conversion 2017-08-22 11:08:21 +00:00
Object Fix archive-update.test after r311296. 2017-08-20 18:31:30 +00:00
ObjectYAML [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId 2017-07-17 23:59:44 +00:00
Other revert failing test 2017-08-19 12:24:41 +00:00
SafepointIRVerifier [SafepointIRVerifier] Avoid false positives in GC verifier for compare between pointers 2017-07-07 13:02:29 +00:00
SymbolRewriter
TableGen [globalisel][tablegen] Generate TypeObject table. NFC 2017-08-17 13:18:35 +00:00
ThinLTO/X86 [lib/Analysis] - Mark personality functions as live. 2017-08-22 08:50:56 +00:00
tools Revert "[llvm-dwarfdump] Print type names in DW_AT_type DIEs" 2017-08-22 21:59:46 +00:00
Transforms [InstCombine] Remove check for sext of vector icmp from shouldOptimizeCast 2017-08-22 23:40:15 +00:00
Unit Change remaining references to lit.util.capture to use subprocess.check_output. 2017-07-06 21:46:47 +00:00
Verifier Mark Verifier/invalid-eh.ll as unsupported on windows 2017-08-17 15:07:03 +00:00
YAMLParser
.clang-format
CMakeLists.txt Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-08-01 00:33:58 +00:00
lit.cfg Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-08-01 00:33:58 +00:00
lit.site.cfg.in Correctly enable the llvm-mt tests, now that build flags changed. 2017-07-26 16:35:44 +00:00
TestRunner.sh