mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:50:30 +00:00
c3a419fcf3
This is r334704 (which was reverted in r334732) with a fix for types like x86_fp80. We need to use getTypeAllocSizeInBits and not getTypeStoreSizeInBits to avoid dropping debug info for such types. Original commit msg: > Summary: > Do not convert a DbgDeclare to DbgValue if the store > instruction only refer to a fragment of the variable > described by the DbgDeclare. > > Problem was seen when for example having an alloca for an > array or struct, and there were stores to individual elements. > In the past we inserted a DbgValue intrinsics for each store, > just as if the store wrote the whole variable. > > When handling store instructions we insert a DbgValue that > indicates that the variable is "undefined", as we do not know > which part of the variable that is updated by the store. > > When ConvertDebugDeclareToDebugValue is used with a load/phi > instruction we assert that the referenced value is large enough > to cover the whole variable. Afaict this should be true for all > scenarios where those methods are used on trunk. If the assert > blows in the future I guess we could simply skip to insert a > dbg.value instruction. > > In the future I think we should examine which part of the variable > that is accessed, and add a DbgValue instrinsic with an appropriate > DW_OP_LLVM_fragment expression. > > Reviewers: dblaikie, aprantl, rnk > > Reviewed By: aprantl > > Subscribers: JDevlieghere, llvm-commits > > Tags: #debug-info > > Differential Revision: https://reviews.llvm.org/D48024 llvm-svn: 334830 |
||
---|---|---|
.. | ||
2002-03-28-UninitializedVal.ll | ||
2002-05-01-ShouldNotPromoteThisAlloca.ll | ||
2003-04-10-DFNotFound.ll | ||
2003-04-18-DeadBlockProblem.ll | ||
2003-04-24-MultipleIdenticalSuccessors.ll | ||
2003-06-26-IterativePromote.ll | ||
2003-10-05-DeadPHIInsertion.ll | ||
2005-06-30-ReadBeforeWrite.ll | ||
2005-11-28-Crash.ll | ||
2007-08-27-VolatileLoadsStores.ll | ||
atomic.ll | ||
ConvertDebugInfo2.ll | ||
ConvertDebugInfo.ll | ||
crash.ll | ||
dbg-addr-inline-dse.ll | ||
dbg-addr.ll | ||
dbg-inline-scope-for-phi.ll | ||
debug-alloca-phi-2.ll | ||
debug-alloca-phi.ll | ||
ignore-lifetime.ll | ||
optnone.ll | ||
pr24179.ll | ||
pr37632-unreachable-list-of-stores.ll | ||
preserve-nonnull-load-metadata.ll | ||
PromoteMemToRegister.ll | ||
UndefValuesMerge.ll |