Lines Matching +full:defined +full:- +full:atoms
6 Note: this document discuss Mach-O port of LLD. For ELF and COFF,
10 ------------
13 and create an `lld::File`:cpp:class: (which is a graph of Atoms)
46 created *only* through an object-format-specific
49 class is the one-and-only way to control how the Reader operates when
55 --------------
68 ---------------------
84 a collection of Atoms. The result is a vector of File pointers (instead of
90 ----------------
92 Atoms are always owned by their File object. During core linking when Atoms
94 Core linking just removes those unused Atoms from its internal list.
95 The destructor of a File object is responsible for deleting all Atoms it
99 Making Atoms
100 ------------
103 have an explicit concept of Atoms, instead most have "sections". The way
104 to think of this is that a section is just a list of Atoms with common
107 The first step in parsing section-based object files is to cleave each
108 section into a list of Atoms. The technique may vary by section type. For
111 cleaved into discrete Atoms. Some file formats (like ELF) also include the
116 Other sections types can be implicitly cleaved. For instance c-string literals
118 the content of the section. It is important to cleave sections into Atoms
124 away the function atoms.
130 Once all Atoms have been created, the second step is to create References
131 (recall that Atoms are "nodes" and References are "edges"). Most References
136 table index into a target Atom. If "malloc" is not defined in the object file,
141 -----------
142 Once you have the above working to parse an object file into Atoms and
146 * Use llvm::BumpPtrAllocator or pre-allocate one big vector<Reference> and then
149 * Pre-scan the symbol table and determine how many atoms are in each section
157 -------
170 is then run through FileCheck to verify the Atoms and References are as