1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib
Jeremy Morse 2104fd09d6 [DebugInfo] Emit undef DBG_VALUEs when SDNodes are optimised out
This is a fix for PR39896, where dbg.value's of SDNodes that have been
optimised out do not lead to "DBG_VALUE undef" instructions being created.
Such undef instructions are necessary to terminate earlier variable
ranges, otherwise variable values leak past the point where they're valid.

The "invalidated" flag of SDDbgValue is currently being abused to mean two
things:
 * The corresponding SDNode is now invalid
 * This SDDbgValue should not be emitted
Of which there are several legitimate combinations of meaning:
 * The SDNode has been invalidated and we should emit "DBG_VALUE undef"
 * The SDNode has been invalidated but the debug data was salvaged, don't
   emit anything for this SDDbgValue
 * This SDDbgValue has been emitted

This patch introduces distinct "Emitted" and "Invalidated" fields to the
SDDbgValue class, updates users accordingly, and generates "undef"
DBG_VALUEs for invalidated records. Awkwardly, there are circumstances
where we emit SDDbgValue's twice, specifically DebugInfo/X86/dbg-addr-dse.ll
which I've preserved.

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

llvm-svn: 348751
2018-12-10 11:20:47 +00:00
..
Analysis [MemCpyOpt] memset->memcpy forwarding with undef tail 2018-12-07 21:16:58 +00:00
AsmParser [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
BinaryFormat Use RequireNullTerminator=false in identify_magic. 2018-12-01 00:22:39 +00:00
Bitcode [ModuleSummary] use StringRefs to avoid a redundant copy; NFC 2018-12-07 21:47:32 +00:00
CodeGen [DebugInfo] Emit undef DBG_VALUEs when SDNodes are optimised out 2018-12-10 11:20:47 +00:00
DebugInfo [NativePDB] Reconstruct function declarations from debug info. 2018-12-07 19:34:02 +00:00
Demangle [Demangle] remove itaniumFindTypesInMangledName 2018-11-27 16:11:24 +00:00
ExecutionEngine [ExecutionEngine] Change NotifyObjectEmitted/NotifyObjectFreed API. 2018-12-04 00:55:15 +00:00
Fuzzer
FuzzMutate
IR [X86] Merge addcarryx/addcarry intrinsic into a single addcarry intrinsic. 2018-12-10 06:07:50 +00:00
IRReader
LineEditor
Linker ThinLTO: Do not import debug info for imported global constants 2018-12-05 21:42:17 +00:00
LTO LTO: Don't internalize available_externally globals. 2018-12-05 00:09:36 +00:00
MC [MC] - Fix build bot. 2018-12-05 11:06:29 +00:00
Object [COFF] Map truncated .eh_frame section name 2018-12-08 18:15:41 +00:00
ObjectYAML [Hexagon] Add missing flags to ELF YAMLIO 2018-11-28 16:25:47 +00:00
Option
OptRemarks
Passes Introduce llvm.experimental.widenable_condition intrinsic 2018-12-07 14:39:46 +00:00
ProfileData
Support Add Hurd target to LLVMSupport (1/2) 2018-11-29 03:23:01 +00:00
TableGen [TableGen] Preprocessing support 2018-11-27 18:57:43 +00:00
Target [X86] Fix AvoidStoreForwardingBlocks pass for negative displacements 2018-12-10 10:16:50 +00:00
Testing
TextAPI [TextAPI][elfabi] Fix build by adding std::move() to r348735 2018-12-10 03:05:58 +00:00
ToolDrivers
Transforms [MemCpyOpt] memset->memcpy forwarding with undef tail 2018-12-07 21:16:58 +00:00
WindowsManifest
XRay [XRay] Improve FDR trace handling and error messaging 2018-11-09 06:26:48 +00:00
CMakeLists.txt [llvm-tapi] initial commit, supports ELF text stubs 2018-12-03 19:30:52 +00:00
LLVMBuild.txt [llvm-tapi] initial commit, supports ELF text stubs 2018-12-03 19:30:52 +00:00