llvm-6502/include/llvm
Rafael Espindola a23cc6a1ea Add r224985 back with fixes.
The fixes are to note that AArch64 has additional restrictions on when local
relocations can be used. In particular, ld64 requires that relocations to
cstring/cfstrings use linker visible symbols.

Original message:

In an assembly expression like

bar:
  .long L0 + 1

the intended semantics is that bar will contain a pointer one byte past L0.

In sections that are merged by content (strings, 4 byte constants, etc), a
single position in the section doesn't give the linker enough information.
For example, it would not be able to tell a relocation must point to the
end of a string, since that would look just like the start of the next.

The solution used in ELF to use relocation with symbols if there is a non-zero
addend.

In MachO before this patch we would just keep all symbols in some sections.

This would miss some cases (only cstrings on x86_64 were implemented) and was
inefficient since most relocations have an addend of 0 and can be represented
without the symbol.

This patch implements the non-zero addend logic for MachO too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226503 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-19 21:11:14 +00:00
..
ADT [tinyptrvector] Add in a MutableArrayRef implicit conversion operator to complement the ArrayRef implicit conversion operator. 2015-01-19 03:25:33 +00:00
Analysis [PM] Now that LoopInfo isn't in the Pass type hierarchy, it is much 2015-01-18 01:25:51 +00:00
AsmParser
Bitcode Use report_fatal_error instead of llvm_unreachable, so we don't crash on user input 2015-01-16 04:54:12 +00:00
CodeGen Remove support for DIVariable's FlagIndirectVariable and expect 2015-01-19 17:57:29 +00:00
Config
DebugInfo [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ExecutionEngine [RuntimeDyld] Track symbol visibility in RuntimeDyld. 2015-01-16 23:13:56 +00:00
IR IR: Add MDLocation::getTemporary() 2015-01-19 20:37:44 +00:00
IRReader
LineEditor
Linker
LTO
MC Add r224985 back with fixes. 2015-01-19 21:11:14 +00:00
Object Fix the Archive::Child::getRawSize() method used by llvm-objdump’s -archive-headers option 2015-01-16 22:10:36 +00:00
Option
ProfileData [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
Support unique_ptrify the RelInfo parameter to TargetRegistry::createMCSymbolizer 2015-01-18 20:45:48 +00:00
TableGen
Target [PM] Move TargetLibraryInfo into the Analysis library. 2015-01-15 02:16:27 +00:00
Transforms [PM] Replace the Pass argument to SplitEdge with specific analyses used 2015-01-19 12:36:53 +00:00
CMakeLists.txt
InitializePasses.h [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LinkAllIR.h
LinkAllPasses.h Add a new pass "inductive range check elimination" 2015-01-16 01:03:22 +00:00
module.modulemap
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassManager.h
PassRegistry.h
PassSupport.h