Duncan P. N. Exon Smith a582f1f396 IR: Handle self-referencing DICompositeTypes in DIBuilder
Add API to DIBuilder to handle self-referencing `DICompositeType`s.

Self-references aren't expected in the debug info graph, and we take
advantage of that by only calling `resolveCycles()` on nodes that were
once forward declarations (otherwise, DIBuilder needs an expensive
tracking reference to every unresolved node it creates, which in cyclic
graphs is *all of them*).

However, clang seems to create self-referencing `DICompositeType`s.  Add
API to manage this safely.  The paired commit to clang will include the
regression test.

I'll make the `DICompositeType` API `private` in a follow-up to prevent
misuse (I've separated that to prevent build failures from missing the
clang commit).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224482 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-18 00:46:16 +00:00
..
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00
2014-12-09 18:38:53 +00:00