diff options
author | Marshall Clow <mclow@qualcomm.com> | 2012-07-18 23:20:40 +0000 |
---|---|---|
committer | Marshall Clow <mclow@qualcomm.com> | 2012-07-18 23:20:40 +0000 |
commit | 341f496538b5460585c8f780f5e4efe3448bad3c (patch) | |
tree | ef4bc6f290270465091bd09f248c047d10392b48 /lld/docs/design.rst | |
parent | c16cd2a67bfcccc61fc0c8dbbae865ad3df19a97 (diff) | |
download | bcm5719-llvm-341f496538b5460585c8f780f5e4efe3448bad3c.tar.gz bcm5719-llvm-341f496538b5460585c8f780f5e4efe3448bad3c.zip |
Added description of Atom types from Nick's email
llvm-svn: 160468
Diffstat (limited to 'lld/docs/design.rst')
-rw-r--r-- | lld/docs/design.rst | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lld/docs/design.rst b/lld/docs/design.rst index 19ea8110d3a..6a8d0ff7d5e 100644 --- a/lld/docs/design.rst +++ b/lld/docs/design.rst @@ -42,6 +42,30 @@ containing the c-string literal "hello world". The Atom "main" has two references. One is the call site for the call to printf, and the other is a reference for the instruction that loads the address of the c-string literal. +There are only four different types of atoms: + + * DefinedAtom + 95% of all atoms. This is a chunk of code or data + + * UndefinedAtom + This is a place holder in object files for a reference to some atom + outside the translation unit.During core linking it is usually replaced + by (coalesced into) another Atom. + + * SharedLibraryAtom + If a required symbol name turns out to be defined in a dynamic shared + library (and not some object file). A SharedLibraryAtom is the + placeholder Atom used to represent that fact. + + It is similar to an UndefinedAtom, but it also tracks information + about the associated shared library. + + * AbsoluteAtom + This is for embedded support where some stuff is implemented in ROM at + some fixed address. This atom has no content. It is just an address + that the Writer needs to fixup any references to point to. + + File Model ---------- |