Page MenuHomePhabricator

Delete DefinedAbsolute
ClosedPublic

Authored by rafael on Dec 23 2015, 7:03 PM.

Details

Reviewers
ruiu
grimar
Summary

There are 3 symbol types that a .bc can provide during lto: defined, undefined, common.

Defined and undefined symbols have already been refactored. I was working on common and noticed that absolute symbols would become an oddity: They would be the only symbol type present in a .o but not in a.bc.

Looking a bit more, other than the special section number they were only used for special rules for computing values. In that way they are similar to TLS, and we don't have a DefinedTLS.

This patch deletes it. With it we have a reasonable rule of the thumb for having a symbol kind: It exists if it has special resolution semantics.

Diff Detail

Event Timeline

rafael updated this revision to Diff 43580.Dec 23 2015, 7:03 PM
rafael retitled this revision from to Delete DefinedAbsolute.
rafael updated this object.
rafael added reviewers: ruiu, grimar.
rafael added a subscriber: llvm-commits.
ruiu accepted this revision.Dec 24 2015, 12:32 AM
ruiu edited edge metadata.

LGTM

ELF/Symbols.h
193

Please add a comment saying that Section is null if a symbol is an absolute symbol.

This revision is now accepted and ready to land.Dec 24 2015, 12:32 AM
grimar accepted this revision.Dec 24 2015, 1:00 AM
grimar edited edge metadata.

LGTM

ELF/OutputSections.cpp
1349

This change seems to be not relative to patch (just a NFC), also not sure now its better than original.

Can this be closed ?

rafael closed this revision.Jan 19 2016, 10:20 AM