summaryrefslogtreecommitdiffstats
path: root/lld/docs/design.rst
diff options
context:
space:
mode:
authorMarshall Clow <mclow@qualcomm.com>2012-07-18 23:20:40 +0000
committerMarshall Clow <mclow@qualcomm.com>2012-07-18 23:20:40 +0000
commit341f496538b5460585c8f780f5e4efe3448bad3c (patch)
treeef4bc6f290270465091bd09f248c047d10392b48 /lld/docs/design.rst
parentc16cd2a67bfcccc61fc0c8dbbae865ad3df19a97 (diff)
downloadbcm5719-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.rst24
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
----------
OpenPOWER on IntegriCloud