forked from OSchip/llvm-project
![]() This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression. Currently, DIGlobalVariables holds a DIExpression. This is not the best way to model this: (1) The DIGlobalVariable should describe the source level variable, not how to get to its location. (2) It makes it unsafe/hard to update the expressions when we call replaceExpression on the DIGLobalVariable. (3) It makes it impossible to represent a global variable that is in more than one location (e.g., a variable with multiple DW_OP_LLVM_fragment-s). We also moved away from attaching the DIExpression to DILocalVariable for the same reasons. This reapplies r289902 with additional testcase upgrades and a change to the Bitcode record for DIGlobalVariable, that makes upgrading the old format unambiguous also for variables without DIExpressions. <rdar://problem/29250149> https://llvm.org/bugs/show_bug.cgi?id=31013 Differential Revision: https://reviews.llvm.org/D26769 llvm-svn: 290153 |
||
---|---|---|
.. | ||
2009-10-16-Phi.ll | ||
2009-11-03-InsertExtractValue.ll | ||
2009-11-05-DeadGlobalVariable.ll | ||
2009-11-06-NamelessGlobalVariable.ll | ||
2009-11-10-CurrentFn.ll | ||
2010-01-05-DbgScope.ll | ||
2010-03-12-llc-crash.ll | ||
2010-03-19-DbgDeclare.ll | ||
2010-03-24-MemberFn.ll | ||
2010-04-06-NestedFnDbgInfo.ll | ||
2010-04-19-FramePtr.ll | ||
2010-05-03-DisableFramePtr.ll | ||
2010-05-03-OriginDIE.ll | ||
2010-05-10-MultipleCU.ll | ||
2010-06-29-InlinedFnLocalVar.ll | ||
2010-10-01-crash.ll | ||
PR20038.ll | ||
accel-table-hash-collisions.ll | ||
array.ll | ||
block-asan.ll | ||
bug_null_debuginfo.ll | ||
constant-pointers.ll | ||
constant-sdnodes-have-dbg-location.ll | ||
constantfp-sdnodes-have-dbg-location.ll | ||
cross-cu-inlining.ll | ||
cross-cu-linkonce-distinct.ll | ||
cross-cu-linkonce.ll | ||
cu-range-hole.ll | ||
cu-ranges.ll | ||
dbg-at-specficiation.ll | ||
dead-argument-order.ll | ||
debug-info-always-inline.ll | ||
debug-info-qualifiers.ll | ||
debuginfofinder-forward-declaration.ll | ||
debuginfofinder-multiple-cu.ll | ||
def-line.ll | ||
discriminator.ll | ||
dwarf-public-names.ll | ||
empty.ll | ||
enum-types.ll | ||
enum.ll | ||
global.ll | ||
gmlt.test | ||
gvn.ll | ||
incorrect-variable-debugloc.ll | ||
incorrect-variable-debugloc1.ll | ||
indvar-discriminator.ll | ||
inheritance.ll | ||
inline-debug-info-multiret.ll | ||
inline-debug-info.ll | ||
inline-debug-loc.ll | ||
inline-no-debug-info.ll | ||
inline-scopes.ll | ||
inlined-arguments.ll | ||
inlined-vars.ll | ||
instcombine-phi.ll | ||
linkage-name-abstract.ll | ||
lit.local.cfg | ||
location-verifier.ll | ||
lto-comp-dir.ll | ||
mainsubprogram.ll | ||
member-order.ll | ||
member-pointers.ll | ||
missing-abstract-variable.ll | ||
multiline.ll | ||
namespace.ll | ||
namespace_function_definition.ll | ||
namespace_inline_function_definition.ll | ||
nodebug.ll | ||
noscopes.ll | ||
piece-verifier.ll | ||
ptrsize.ll | ||
recursive_inlining.ll | ||
restrict.ll | ||
skeletoncu.ll | ||
sugared-constants.ll | ||
sunk-compare.ll | ||
template-recursive-void.ll | ||
tu-composite.ll | ||
tu-member-pointer.ll | ||
two-cus-from-same-file.ll | ||
typedef.ll | ||
unconditional-branch.ll | ||
varargs.ll | ||
version.ll | ||
virtual-index.ll |