Change DwarfCompileUnit::createGlobalVariable to getOrCreateGlobalVariable.
authorFrederic Riss <friss@apple.com>
Fri, 19 Sep 2014 15:12:03 +0000 (15:12 +0000)
committerFrederic Riss <friss@apple.com>
Fri, 19 Sep 2014 15:12:03 +0000 (15:12 +0000)
commitf5938eeeb32128cb1f85b118cc929ff2ae1af71f
treef865c8d5e4ab1062d434276fc31256018d90302f
parentb9f4e7d6e937de7725095b61b24c69b9d323b18d
Change DwarfCompileUnit::createGlobalVariable to getOrCreateGlobalVariable.

Summary:
This will allow to request the creation of a forward delacred variable
at is point of use (for imported declarations, this will be
DwarfDebug::constructImportedEntityDIE) rather than having to put the
forward decl in a retention list.

Note that getOrCreateGlobalVariable returns the actual definition DIE when the
routine creates a declaration and a definition DIE. If you agree this is the
right behavior, then I'll have a followup patch that registers the definition
in the DIE map instead of the declaration as it is today (this 'breaks' only
one test, where we test that the imported entity is the declaration). I'm
not sure what's best here, but it's easy enough for a consumer to follow the
DW_AT_specification link to get to the declaration, whereas it takes more
work to find the actual definition from a declaration DIE.

Reviewers: echristo, dblaikie, aprantl

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5381

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218126 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfUnit.cpp
lib/CodeGen/AsmPrinter/DwarfUnit.h