1. [ELF][ARM] Add a test that maxes out the thunk convergence limit (details)
  2. [DebugInfo] Make postra sinking of DBG_VALUEs subregister-safe (details)
  3. [MC] Simplify ELFObjectWriter::recordRelocation. NFC (details)
Commit 2cafd872fb97f2899ac0f1b01ed82ee88581c86d by peter.smith
[ELF][ARM] Add a test that maxes out the thunk convergence limit
Add a test that takes the maximum amount of passes permitted to
converge. This will make sure that any symbol defined in a linker script
gets the correct value and that any other convergence limit involving
symbol address doesn't restrict Thunk convergence.
Differential Revision: https://reviews.llvm.org/D66346
llvm-svn: 369246
The file was addedlld/test/ELF/arm-thunk-many-passes.s
Commit 176bbd5cde362ad965dcda5cc72b655117685a5a by jeremy.morse.llvm
[DebugInfo] Make postra sinking of DBG_VALUEs subregister-safe
Currently the machine instruction sinker identifies DBG_VALUE insts that
also need to sink by comparing register numbers. Unfortunately this
isn't safe, because (after register allocation) a DBG_VALUE may read a
register that aliases what's being sunk. To fix this, identify the
DBG_VALUEs that need to sink by recording & examining their register
units. Register units gives us the following guarantee:
  "Two registers overlap if and only if they have a common register
Thus we can always identify aliasing DBG_VALUEs if the set of register
units read by the DBG_VALUE, and the register units of the instruction
being sunk, intersect. (MachineSink already uses classes like
"LiveRegUnits" for determining sinking validity anyway).
The test added checks for super and subregister DBG_VALUE reads of a
sunk copy being sunk as well.
Differential Revision: https://reviews.llvm.org/D58191
llvm-svn: 369247
The file was modifiedllvm/lib/CodeGen/MachineSink.cpp
The file was addedllvm/test/DebugInfo/MIR/X86/postra-subreg-sink.mir
Commit d9a071c54be5531ea0b0b949a15497a9c7733755 by maskray
[MC] Simplify ELFObjectWriter::recordRelocation. NFC
llvm-svn: 369248
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp