1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/lib
Jeremy Morse 0dad0e2b4e [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 unit"
  [MCRegisterInfo.h]

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
2019-08-19 09:53:07 +00:00
..
Analysis [CaptureTracking] Allow null to be in either icmp operand 2019-08-16 21:53:49 +00:00
AsmParser [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
BinaryFormat [Dwarf] Complete the list of type tags. 2019-08-13 17:00:54 +00:00
Bitcode [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [DebugInfo] Make postra sinking of DBG_VALUEs subregister-safe 2019-08-19 09:53:07 +00:00
DebugInfo Remove the temporary code. NFC. 2019-08-16 03:40:04 +00:00
Demangle llvm-undname: Correctly demangle vararg parameters 2019-06-04 19:10:08 +00:00
ExecutionEngine [ORC] Remove some stray debugging output accidentally left in r368707 2019-08-16 19:33:37 +00:00
Fuzzer
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
IR Link libpthread into LLVMCore.so 2019-08-15 18:06:30 +00:00
IRReader
LineEditor [CMake] Delete redundant DEPENDS/LINK_LIBS from LineEditor/XRay 2019-06-22 01:50:21 +00:00
Linker Linker: Add support for GlobalIFunc. 2019-08-08 22:09:18 +00:00
LTO [NewPM][PassInstrumentation] IR printing support for (Thin)LTO 2019-08-15 17:47:44 +00:00
MC [MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" 2019-08-19 07:59:35 +00:00
MCA [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Object [BPF] Fix bpf llvm-objdump issues. 2019-08-17 22:12:00 +00:00
ObjectYAML [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Option [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Passes Title: Loop Cache Analysis 2019-08-09 13:56:29 +00:00
ProfileData [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Remarks [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Support [RWMutex] Simplify availability check 2019-08-16 21:25:40 +00:00
TableGen [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Target [ARM] Add support for MVE vaddv 2019-08-19 09:38:28 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI [TextAPI] Update reader to be supported by lib/Object 2019-08-16 15:30:48 +00:00
ToolDrivers [llvm-dlltool] Clarify an error message. NFC. 2019-08-02 11:20:03 +00:00
Transforms Revert [Attributor] Fix: Make sure we set the changed flag 2019-08-19 08:00:08 +00:00
WindowsManifest [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
XRay [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CMakeLists.txt Fix build errors LLVM tests are disabled. 2019-07-11 22:08:35 +00:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00