Remove group-parent references.
authorRui Ueyama <ruiu@google.com>
Tue, 3 Jun 2014 03:07:49 +0000 (03:07 +0000)
committerRui Ueyama <ruiu@google.com>
Tue, 3 Jun 2014 03:07:49 +0000 (03:07 +0000)
commit9aee050a0cdcae535c8fd43b172df05f607948cd
treee49c7d3f428f4ddbddc09bfa1c3cf12d10187e96
parent552f2f7b96f8fe7aa67d675b90ddde095ec5629a
Remove group-parent references.

Previously section groups are doubly linked to their children.
That is, an atom representing a group has group-child references
to its group contents, and content atoms also have group-parent
references to the group atom. That relationship was invariant;
if X has a group-child edge to Y, Y must have a group-parent
edge to X.

However we were not using group-parent references at all. The
resolver only needs group-child edges.

This patch simplifies the section group by removing the unused
reverse edge. No functionality change intended.

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

llvm-svn: 210066
14 files changed:
lld/docs/design.rst
lld/include/lld/Core/Reference.h
lld/lib/Core/Resolver.cpp
lld/lib/ReaderWriter/Reader.cpp
lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
lld/test/core/gnulinkonce-rearrange-resolve.objtxt
lld/test/core/gnulinkonce-remaining-undef.objtxt
lld/test/core/gnulinkonce-resolve.objtxt
lld/test/core/gnulinkonce-simple.objtxt
lld/test/core/sectiongroup-gnulinkonce-error.objtxt
lld/test/core/sectiongroup-rearrange-resolve.objtxt
lld/test/core/sectiongroup-remaining-undef.objtxt
lld/test/core/sectiongroup-resolve.objtxt
lld/test/core/sectiongroup-simple.objtxt