Remove support for DIVariable's FlagIndirectVariable and expect
authorAdrian Prantl <aprantl@apple.com>
Mon, 19 Jan 2015 17:57:29 +0000 (17:57 +0000)
committerAdrian Prantl <aprantl@apple.com>
Mon, 19 Jan 2015 17:57:29 +0000 (17:57 +0000)
commite240cc0b4b05e03e10f7d2ae74e99371c5daa65b
tree9f7761a8fece3e3df91eaa990845b6141ea385af
parent4b96323e81d7ee6100de5be0c83c363f802426a0
Remove support for DIVariable's FlagIndirectVariable and expect
frontends to use a DIExpression with a DW_OP_deref instead.

This is not only a much more natural place for this informationl; there
is also a technical reason: The FlagIndirectVariable is used to mark a
variable that is turned into a reference by virtue of the calling
convention; this happens for example to aggregate return values.
The inliner, for example, may actually need to undo this indirection to
correctly represent the value in its new context. This is impossible to
implement because the DIVariable can't be safely modified. We can however
safely construct a new DIExpression on the fly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226476 91177308-0d34-0410-b5e6-96231b3b80d8
18 files changed:
include/llvm/CodeGen/AsmPrinter.h
include/llvm/IR/DebugInfo.h
lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
test/DebugInfo/AArch64/struct_by_value.ll
test/DebugInfo/ARM/lowerbdgdeclare_vla.ll
test/DebugInfo/ARM/selectiondag-deadcode.ll
test/DebugInfo/X86/dbg_value_direct.ll
test/DebugInfo/X86/debug-loc-offset.ll
test/DebugInfo/X86/op_deref.ll
test/DebugInfo/X86/parameters.ll
test/DebugInfo/X86/pr19307.ll
test/DebugInfo/X86/reference-argument.ll
test/DebugInfo/X86/sret.ll
test/DebugInfo/X86/vla.ll
test/DebugInfo/debug-info-qualifiers.ll