This repository has been archived by the owner on Apr 4, 2022. It is now read-only.
forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Glossary
Paul Bowen-Huggett edited this page Nov 30, 2020
·
11 revisions
The terms below have specific meaning when used in the context of the program repository.
- Compilation
- The results of the compiler translating an individual translation unit. A structure containing: the compilation triple; path of the original ticket file (where available; used during garbage collection); and zero-or-more definitions.
- Definition
- A definition of an individual named function or global data object. A structure containing: the name of the entity; an associated fragment; a linkage type. Associates a name with the fragment entry-point of the attached fragment.
- External fixup
-
A reference relative to the fragment entry-point of a named program entity and an ABI-specific type-code describing of the action to be performed when relocating the owning section.
The name is provided as a member of the external-fixup structure. This is mapped to a corresponding definition at link-time once the global symbol table has been built.
- Fragment
- A collection of sections. A fragment represents the code and/or data of an individual program element such as a function of data object. Each section has a type code which determines the meaning of the associated data.
- Fragment entry point
- The first byte of the section with the lowest-numbered type code in a fragment.
- Internal fixup
- A reference to a specific offset of a section within the owning fragment and an ABI-specific type-code describing of the action to be performed when relocating the owning section.
- Linkage
- An enumeration which describes how a named entity should interact with other named entities in a collection of compilations. The available linkage types are based on those available in LLVM IR. The rules for symbol resolution in a static linker are set out in this table.
- Linked definition
- The compiler can create new functions and variables as a result of applying certain optimizations. These entities don’t appear in the source code but must nonetheless appear in the resulting compilation. Where a fragment references one or more of these related definitions, it contains a section holding an array whose elements each point to a specific definition instance.
- Section
- A structure containing a BLOB and collections of zero-or-more internal- and/or external-fixups.
- Ticket
- A unique value which serves as the key to locate a specific compilation.
- Ticket file
- A file containing a ticket. Created by the compiler after it has completed translating an individual translation unit.
The terminology in this section is not specific to the Program Repository, but is included here for reference.
- BLOB
- A Binary Large OBject is a collection of binary data stored as a single entity in a database management system. (wikipedia)
- Translation unit
- The ultimate input to a C or C++ compiler from which an object file is generated. (wikipedia)
- Triple
- A description of the platform on which code runs. It contains three fields or more fields indicating the name of the CPU family/model, the vendor, and the operating system name. (wiki.osdev.org)
- Relocation
- The process of assigning load addresses for position-dependent code and data of a program and adjusting the code and data to reflect the assigned addresses. (wikipedia)