[lld] r210066 - Remove group-parent references.
Rui Ueyama
ruiu at google.com
Mon Jun 2 20:07:50 PDT 2014
Author: ruiu
Date: Mon Jun 2 22:07:49 2014
New Revision: 210066
URL: http://llvm.org/viewvc/llvm-project?rev=210066&view=rev
Log:
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
Modified:
lld/trunk/docs/design.rst
lld/trunk/include/lld/Core/Reference.h
lld/trunk/lib/Core/Resolver.cpp
lld/trunk/lib/ReaderWriter/Reader.cpp
lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
lld/trunk/test/core/gnulinkonce-rearrange-resolve.objtxt
lld/trunk/test/core/gnulinkonce-remaining-undef.objtxt
lld/trunk/test/core/gnulinkonce-resolve.objtxt
lld/trunk/test/core/gnulinkonce-simple.objtxt
lld/trunk/test/core/sectiongroup-gnulinkonce-error.objtxt
lld/trunk/test/core/sectiongroup-rearrange-resolve.objtxt
lld/trunk/test/core/sectiongroup-remaining-undef.objtxt
lld/trunk/test/core/sectiongroup-resolve.objtxt
lld/trunk/test/core/sectiongroup-simple.objtxt
Modified: lld/trunk/docs/design.rst
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/docs/design.rst?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/docs/design.rst (original)
+++ lld/trunk/docs/design.rst Mon Jun 2 22:07:49 2014
@@ -170,8 +170,7 @@ outside the '.group'.
In lld the the '.group' sections with COMDAT are identified by contentType(
typeGroupComdat). The '.group' members are identified by using
-**kindGroupChild** references. The group child members have a reference to the
-group section by using **kindGroupParent** references.
+**kindGroupChild** references.
The point to be noted here is the 'group child' members would need to be emitted
in the output file **iff** the group was selected by the resolver.
Modified: lld/trunk/include/lld/Core/Reference.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Reference.h?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Reference.h (original)
+++ lld/trunk/include/lld/Core/Reference.h Mon Jun 2 22:07:49 2014
@@ -89,8 +89,8 @@ public:
// kindLayoutBefore is currently used only by PECOFF port, and will
// be removed soon. To enforce layout, use kindLayoutAfter instead.
kindLayoutBefore = 3,
+ // kindGroupChild is treated as a bidirected edge too.
kindGroupChild = 4,
- kindGroupParent = 5
};
// A value to be added to the value of a target
Modified: lld/trunk/lib/Core/Resolver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/lib/Core/Resolver.cpp (original)
+++ lld/trunk/lib/Core/Resolver.cpp Mon Jun 2 22:07:49 2014
@@ -321,8 +321,10 @@ void Resolver::markLive(const Atom *atom
}
static bool isBackref(const Reference *ref) {
- return ref->kindNamespace() == lld::Reference::KindNamespace::all &&
- ref->kindValue() == lld::Reference::kindLayoutBefore;
+ if (ref->kindNamespace() != lld::Reference::KindNamespace::all)
+ return false;
+ return (ref->kindValue() == lld::Reference::kindLayoutBefore ||
+ ref->kindValue() == lld::Reference::kindGroupChild);
}
// remove all atoms not actually used
Modified: lld/trunk/lib/ReaderWriter/Reader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/Reader.cpp?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/Reader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/Reader.cpp Mon Jun 2 22:07:49 2014
@@ -58,7 +58,6 @@ static const Registry::KindStrings kindS
{Reference::kindLayoutAfter, "layout-after"},
{Reference::kindLayoutBefore, "layout-before"},
{Reference::kindGroupChild, "group-child"},
- {Reference::kindGroupParent, "group-parent"},
LLD_KIND_STRING_END};
Registry::Registry() {
Modified: lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (original)
+++ lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp Mon Jun 2 22:07:49 2014
@@ -183,18 +183,14 @@ public:
const lld::Atom *lookup(StringRef name) const {
NameToAtom::const_iterator pos = _nameMap.find(name);
- if (pos != _nameMap.end()) {
+ if (pos != _nameMap.end())
return pos->second;
- } else if ((pos = _groupChild.find(name)) != _groupChild.end()) {
- return pos->second;
- } else {
- _io.setError(Twine("no such atom name: ") + name);
- return nullptr;
- }
+ _io.setError(Twine("no such atom name: ") + name);
+ return nullptr;
}
/// \brief Lookup a group parent when there is a reference of type
- /// kindGroupParent. If there was no group-parent produce an appropriate
+ /// kindGroupChild. If there was no group-parent produce an appropriate
/// error.
const lld::Atom *lookupGroupParent(StringRef name) const {
NameToAtom::const_iterator pos = _groupMap.find(name);
@@ -204,30 +200,10 @@ public:
return nullptr;
}
- /// \brief Lookup a group child when there is a reference of type
- /// kindGroupChild. If there was no group-child produce an appropriate
- /// error.
- const lld::Atom *lookupGroupChild(StringRef name) const {
- NameToAtom::const_iterator pos = _groupChild.find(name);
- if (pos != _groupChild.end())
- return pos->second;
- _io.setError(Twine("no such group child: ") + name);
- return nullptr;
- }
-
private:
typedef llvm::StringMap<const lld::Atom *> NameToAtom;
void add(StringRef name, const lld::Atom *atom, bool isGroupChild = false) {
- if (isGroupChild) {
- if (_groupChild.count(name)) {
- _io.setError(Twine("duplicate group child: ") + name);
- } else {
- _groupChild[name] = atom;
- }
- return;
- }
-
if (const lld::DefinedAtom *da = dyn_cast<DefinedAtom>(atom)) {
if (da->isGroupParent()) {
if (_groupMap.count(name)) {
@@ -248,7 +224,6 @@ private:
IO &_io;
NameToAtom _nameMap;
NameToAtom _groupMap;
- NameToAtom _groupChild;
};
// Used in NormalizedFile to hold the atoms lists.
@@ -836,15 +811,8 @@ template <> struct MappingTraits<const l
_deadStrip(atom->deadStrip()), _dynamicExport(atom->dynamicExport()),
_permissions(atom->permissions()), _size(atom->size()),
_sectionName(atom->customSectionName()) {
- for (const lld::Reference *r : *atom) {
- // If this is not a group child as yet, lets keep looking
- // at all the references.
- if (!_isGroupChild &&
- r->kindNamespace() == lld::Reference::KindNamespace::all &&
- r->kindValue() == lld::Reference::kindGroupParent)
- _isGroupChild = true;
+ for (const lld::Reference *r : *atom)
_references.push_back(r);
- }
if (!atom->occupiesDiskSpace())
return;
ArrayRef<uint8_t> cont = atom->rawContent();
@@ -892,6 +860,7 @@ template <> struct MappingTraits<const l
DeadStripKind deadStrip() const override { return _deadStrip; }
DynamicExport dynamicExport() const override { return _dynamicExport; }
ContentPermissions permissions() const override { return _permissions; }
+ void setGroupChild(bool val) { _isGroupChild = val; }
bool isGroupChild() const { return _isGroupChild; }
ArrayRef<uint8_t> rawContent() const override {
if (!occupiesDiskSpace())
@@ -987,16 +956,6 @@ template <> struct MappingTraits<const l
DefinedAtom::permissions(
keys->_contentType));
io.mapOptional("references", keys->_references);
- for (const lld::Reference *r : keys->_references) {
- // If this is not a group child as yet, lets keep looking
- // at all the references.
- if (!keys->_isGroupChild &&
- r->kindNamespace() == lld::Reference::KindNamespace::all &&
- r->kindValue() == lld::Reference::kindGroupParent) {
- keys->_isGroupChild = true;
- break;
- }
- }
}
};
@@ -1256,17 +1215,14 @@ inline void MappingTraits<const lld::Def
inline void MappingTraits<const lld::Reference *>::NormalizedReference::bind(
const RefNameResolver &resolver) {
- if (_mappedKind.ns == lld::Reference::KindNamespace::all) {
- if (_mappedKind.value == lld::Reference::kindGroupParent) {
- _target = resolver.lookupGroupParent(_targetName);
- return;
- }
- if (_mappedKind.value == lld::Reference::kindGroupChild) {
- _target = resolver.lookupGroupChild(_targetName);
- return;
- }
- }
+ typedef MappingTraits<const lld::DefinedAtom *>::NormalizedAtom NormalizedAtom;
+
_target = resolver.lookup(_targetName);
+
+ if (_mappedKind.ns == lld::Reference::KindNamespace::all &&
+ _mappedKind.value == lld::Reference::kindGroupChild) {
+ ((NormalizedAtom *)_target)->setGroupChild(true);
+ }
}
inline StringRef
Modified: lld/trunk/test/core/gnulinkonce-rearrange-resolve.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/gnulinkonce-rearrange-resolve.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/gnulinkonce-rearrange-resolve.objtxt (original)
+++ lld/trunk/test/core/gnulinkonce-rearrange-resolve.objtxt Mon Jun 2 22:07:49 2014
@@ -22,27 +22,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
---
defined-atoms:
- name: g1
@@ -60,27 +48,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
...
# CHECK: defined-atoms:
@@ -97,19 +73,7 @@ defined-atoms:
# CHECK: - kind: group-child
# CHECK: target: d1
# CHECK: - name: f1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: f2
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: g1
# CHECK: ref-name: [[CHILD]]
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: d1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
Modified: lld/trunk/test/core/gnulinkonce-remaining-undef.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/gnulinkonce-remaining-undef.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/gnulinkonce-remaining-undef.objtxt (original)
+++ lld/trunk/test/core/gnulinkonce-remaining-undef.objtxt Mon Jun 2 22:07:49 2014
@@ -12,27 +12,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -56,33 +44,18 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f3
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -97,6 +70,7 @@ defined-atoms:
target: g1
- kind: group-child
target: d1
+---
undefined-atoms:
- name: f3
can-be-null: never
Modified: lld/trunk/test/core/gnulinkonce-resolve.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/gnulinkonce-resolve.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/gnulinkonce-resolve.objtxt (original)
+++ lld/trunk/test/core/gnulinkonce-resolve.objtxt Mon Jun 2 22:07:49 2014
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -48,27 +36,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -104,30 +80,14 @@ defined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: ...
Modified: lld/trunk/test/core/gnulinkonce-simple.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/gnulinkonce-simple.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/gnulinkonce-simple.objtxt (original)
+++ lld/trunk/test/core/gnulinkonce-simple.objtxt Mon Jun 2 22:07:49 2014
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -49,7 +37,7 @@ defined-atoms:
references:
- kind: layout-before
target: f1
-
+---
undefined-atoms:
- name: f1
can-be-null: never
@@ -76,32 +64,16 @@ undefined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: anotherfunction
#CHECK: scope: global
#CHECK: type: data
Modified: lld/trunk/test/core/sectiongroup-gnulinkonce-error.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/sectiongroup-gnulinkonce-error.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/sectiongroup-gnulinkonce-error.objtxt (original)
+++ lld/trunk/test/core/sectiongroup-gnulinkonce-error.objtxt Mon Jun 2 22:07:49 2014
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -48,27 +36,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
Modified: lld/trunk/test/core/sectiongroup-rearrange-resolve.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/sectiongroup-rearrange-resolve.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/sectiongroup-rearrange-resolve.objtxt (original)
+++ lld/trunk/test/core/sectiongroup-rearrange-resolve.objtxt Mon Jun 2 22:07:49 2014
@@ -22,27 +22,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
---
defined-atoms:
- name: g1
@@ -60,27 +48,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
...
# CHECK: defined-atoms:
@@ -97,19 +73,7 @@ defined-atoms:
# CHECK: - kind: group-child
# CHECK: target: d1
# CHECK: - name: f1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: f2
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: g1
# CHECK: ref-name: [[CHILD]]
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: d1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
Modified: lld/trunk/test/core/sectiongroup-remaining-undef.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/sectiongroup-remaining-undef.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/sectiongroup-remaining-undef.objtxt (original)
+++ lld/trunk/test/core/sectiongroup-remaining-undef.objtxt Mon Jun 2 22:07:49 2014
@@ -12,27 +12,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -56,33 +44,18 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f3
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -97,6 +70,7 @@ defined-atoms:
target: g1
- kind: group-child
target: d1
+---
undefined-atoms:
- name: f3
can-be-null: never
Modified: lld/trunk/test/core/sectiongroup-resolve.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/sectiongroup-resolve.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/sectiongroup-resolve.objtxt (original)
+++ lld/trunk/test/core/sectiongroup-resolve.objtxt Mon Jun 2 22:07:49 2014
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -48,27 +36,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -104,30 +80,14 @@ defined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: ...
Modified: lld/trunk/test/core/sectiongroup-simple.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/sectiongroup-simple.objtxt?rev=210066&r1=210065&r2=210066&view=diff
==============================================================================
--- lld/trunk/test/core/sectiongroup-simple.objtxt (original)
+++ lld/trunk/test/core/sectiongroup-simple.objtxt Mon Jun 2 22:07:49 2014
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -49,7 +37,7 @@ defined-atoms:
references:
- kind: layout-before
target: f1
-
+---
undefined-atoms:
- name: f1
can-be-null: never
@@ -76,32 +64,16 @@ undefined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: anotherfunction
#CHECK: scope: global
#CHECK: type: data
More information about the llvm-commits
mailing list