[PATCH] Move the IsIndirect flag from DIVariable into DIExpression.

Adrian Prantl aprantl at apple.com
Wed Jan 14 17:19:17 PST 2015


Hi dblaikie, echristo,

This has been long overdue, and is generally totally mechanical. It does break IR-Metadata compatibility, but we do that a lot at the moment :-)

In this form I'm taking no prisoners and simple reflow DIDescriptor::FlagLValueReference and FlagRValueReference to close the gap from removing the flag, but I could understand if someone rather wants to leave a hole in the enum.

Note: LLVM+CFE is rolled into one patch.

Commit message:
    Move the IsIndirect flag from DIVariable into DIExpression.
    This is a much more natural place for this information to be, but there
    is also a more technical reason:
    
    The IsIndirect flag is used to mark a variable that is turned
    into a reference by virtue of the calling convention; this happends
    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.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D6986

Files:
  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
  lib/CodeGen/CGDebugInfo.cpp
  test/CodeGen/debug-info-vla.c
  test/CodeGenCXX/debug-info.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

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6986.18199.patch
Type: text/x-patch
Size: 31999 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150115/cb8dcc38/attachment.bin>


More information about the llvm-commits mailing list