/freebsd-src/contrib/llvm-project/lld/ELF/ |
H A D | ICF.cpp | 10 // identify and merge two or more read-only sections (typically functions) 14 // In ICF, two sections are considered identical if they have the same 17 // relocation types, values, and if they point to the same sections *in 31 // What we are doing in LLD is to partition sections into equivalence 32 // classes. Sections in the same equivalence class when the algorithm 35 // 1. First, we partition sections using their hash values as keys. Hash 38 // account. We just put sections that apparently differ into different 41 // 2. Next, for each equivalence class, we visit sections to compare 43 // their targets are in the same equivalence class. Sections with 53 // merge all the other sections i 123 SmallVector<InputSection *, 0> sections; global() member in __anon5614bdf50111::ICF [all...] |
H A D | MarkLive.cpp | 9 // This file implements --gc-sections, which is a feature to remove unused 10 // sections from output. Unused sections are sections that are not reachable 11 // from known GC-root symbols or sections. Naturally the feature is 15 // by default. Starting with GC-root symbols or sections, markLive function 16 // defined in this file visits all reachable sections to set their Live 17 // bits. Writer will then ignore sections whose Live bits are off, so that 18 // such sections are not included into output. 66 // A list of sections t [all...] |
H A D | CallGraphSort.cpp | 9 /// The file is responsible for sorting sections using LLVM call graph profile 10 /// data by placing frequently executed code sections together. The goal of the 12 /// arranging code sections so that i-TLB misses and i-cache misses are reduced. 15 /// iteratively merges "chains" (ordered lists) of input sections which will be 64 /// code sections such that page table and i-cache misses are minimized. 68 /// * An ordered list of input sections which are laid out as a unit. At the 82 /// * Sort input sections by weight 97 std::vector<const InputSectionBase *> sections; member in __anonac38cd190111::CallGraphSort 121 sections.push_back(isec); in CallGraphSort() 133 // Ignore edges between input sections belonging to different output in CallGraphSort() [all …]
|
H A D | OutputSections.cpp | 81 // We allow sections of types listed below to merged into a 84 // to be allocated for nobits sections. Other ones don't require 88 // NOTE: clang since rL252300 emits SHT_X86_64_UNWIND .eh_frame sections. Allow 103 // 2. Add the InputSection to the InputSectionDescription::sections. 194 // InputSectionDescription::sections. in finalizeInputSections() 197 // new synthetic sections at the location of the first input section in finalizeInputSections() 206 isd->sections.reserve(isd->sectionBases.size()); in finalizeInputSections() 210 isd->sections.push_back(cast<InputSection>(s)); in finalizeInputSections() 214 // We do not want to handle sections that are not alive, so just remove in finalizeInputSections() 224 // could be equal, so we may as well have two sections in finalizeInputSections() 486 ArrayRef<InputSection *> sections = getInputSections(*this, storage); writeTo() local 572 ArrayRef<InputSectionBase *> sections = section->file->getSections(); finalizeShtGroup() local 736 ArrayRef<InputSection *> sections = getInputSections(*this, storage); checkDynRelAddends() local [all...] |
H A D | Writer.cpp | 109 // Clear OutputSection::ptLoad for sections contained in removed in removeEmptyPTLoad() 192 // combines the typical ELF GOT with the small data sections. It commonly in addReservedSymbols() 270 // In addition, demote symbols defined in discarded sections, so that 305 // Now that we have a complete set of output sections. This function 312 // If --compressed-debug-sections is specified, compress .debug_* sections. in canHaveMemtagGlobals() 313 // Do it right now because it changes the size of output sections. in canHaveMemtagGlobals() 322 // we know the size of the sections. 394 // With --gc-sections, the field is already filled. in createSyntheticSections() 426 // from live sections in createSyntheticSections() 1282 SmallVector<InputSectionBase *, 0> matched, sections = ctx.inputSections; maybeShuffle() local 1650 SmallVector<InputSection *, 0> sections; resolveShfLinkOrder() local 1838 ArrayRef<InputSection *> sections = getInputSections(*osec, storage); optimizeBasicBlockJumps() local 2793 checkOverlap(StringRef name,std::vector<SectionOffset> & sections,bool isVirtualAddr) checkOverlap() argument [all...] |
H A D | LinkerScript.cpp | 83 // When no SECTIONS is specified, emulate GNU ld's internal linker scripts in getOutputSectionName() 84 // by grouping sections with certain prefixes. in getOutputSectionName() 86 // GNU ld places text sections with prefix ".text.hot.", ".text.unknown.", in getOutputSectionName() 88 // We provide an option -z keep-text-section-prefix to group such sections in getOutputSectionName() 89 // into separate output sections. This is more flexible. See also in getOutputSectionName() 96 // input sections. For example, with -fsplit-machine-functions, placing the in getOutputSectionName() 313 // adjustOutputSections(). We do not handle such output sections. in processInsertCommands() 354 // Skip such sections for now. Improve the checks if we ever in declareSymbols() 355 // need symbols from that sections to be declared early. in declareSymbols() 424 static bool matchConstraints(ArrayRef<InputSectionBase *> sections, in shouldKeep() 428 matchConstraints(ArrayRef<InputSectionBase * > sections,ConstraintKind kind) matchConstraints() argument 497 computeInputSections(const InputSectionDescription * cmd,ArrayRef<InputSectionBase * > sections) computeInputSections() argument [all...] |
/freebsd-src/crypto/openssh/ |
H A D | PROTOCOL.krl | 5 The KRL consists of a header and zero or more sections. The header is: 24 Following the header are zero or more sections, each consisting of: 44 These sections use type KRL_SECTION_CERTIFICATES to revoke certificates by 57 Followed by one or more sections: 83 These sections use type KRL_SECTION_CERT_SERIAL_RANGE and hold 96 Bitmap sections use type KRL_SECTION_CERT_SERIAL_BITMAP and revoke keys 107 2.4. Revoked key ID sections 109 KRL_SECTION_CERT_KEY_ID sections revoke particular certificate "key 142 3. Explicit key sections 144 These sections, identified as KRL_SECTION_EXPLICIT_KEY, revoke keys [all …]
|
/freebsd-src/usr.bin/clang/llvm-objcopy/ |
H A D | llvm-objcopy.1 | 40 specified, the output may be modified along the way, e.g. by removing sections. 67 specified multiple times to add multiple sections. 88 ELF objects will not be discarded. Additionally, remove all debug sections. 94 specified multiple times to dump multiple sections to different files. 97 operations will still be performed. No operations are performed on the sections 117 Produce a debug file as the output that only preserves contents of sections 120 For ELF objects, this removes the contents of \fISHF_ALLOC\fP sections that are not 127 Remove all sections from the output, except for sections named \fB<section>\fP\&. 128 Can be specified multiple times to keep multiple sections. 158 to remove multiple sections simultaneously. [all …]
|
/freebsd-src/contrib/llvm-project/lld/docs/ELF/ |
H A D | linker_script.rst | 39 SECTIONS command 42 A ``SECTIONS`` command looks like: 46 SECTIONS { 55 When the ``INSERT`` keyword is present, the ``SECTIONS`` command describes some 56 output sections which should be inserted after or before the specified anchor 57 section. The insertion occurs after input sections have been mapped to output 58 sections but before orphan sections have been processed. 60 In the case where no linker script has been provided or every ``SECTIONS`` 102 retain such sections unles [all...] |
H A D | start-stop-gc.rst | 4 If your ``-Wl,--gc-sections`` build fail with a linker error like this: 8 …>>> the encapsulation symbol needs to be retained under --gc-sections properly; consider -z nostar… 10 it is likely your C identifier name sections are not properly annotated to 11 suffice under ``--gc-sections``. 15 reference from a live section retain all ``meta`` input sections. This 27 Annotate C identifier name sections 53 linker ``--gc-sections``. 64 If you use the ``SECTIONS`` command in a linker script, use
|
/freebsd-src/contrib/llvm-project/lld/docs/ |
H A D | Partitions.rst | 42 into partitions according to which sections of the program are reachable from 43 which entry points, similarly to how ``--gc-sections`` removes unused parts of 44 a program. Any sections that are only reachable from a loadable partition's 45 entry point are assigned to that partition, while all other sections are 46 assigned to the main partition, including sections only reachable from 49 The following diagram illustrates how sections are assigned to partitions. Each 65 clang -ffunction-sections -fdata-sections -c main.c 69 clang -ffunction-sections -fdata-sections -fsymbol-partition=libfeature.so -c feature.c 72 …ng main.o feature.o -fuse-ld=lld -shared -o libcombined.so -Wl,-soname,libmain.so -Wl,--gc-sections 106 ``SECTIONS`` or ``PHDRS`` linker script features, nor may it be used with the [all …]
|
H A D | ld.lld.1 | 149 .It Fl -compress-debug-sections Ns = Ns Ar value 150 Compress DWARF debug sections. 151 The sections remain uncompressed if compressed content would be larger. 165 .It Fl -compress-sections Ns = Ns Ar section-glob={none,zlib,zstd}[:level] 166 Compress output sections that match the glob and do not have the SHF_ALLOC flag. 167 The matched sections remain uncompressed if compressed content would be larger. 172 .Cm --compress-debug-sections. 228 Spill input sections to later matching output sections to avoid memory region overflow. 253 Mark executable sections unreadabl [all...] |
/freebsd-src/contrib/llvm-project/lld/MachO/ |
H A D | OutputSection.h | 27 // not to conflict with the ordering of zerofill sections, which must always be 31 // Output sections represent the finalized sections present within the final 32 // linked executable. They can represent special sections (like the symbol 33 // table), or represent coalesced sections from the various inputs given to the 51 // How much space the section occupies in the file. Most sections are copied 55 // Hidden sections omit header content, but body content may still be present. 57 // Unneeded sections are omitted entirely (header and body). 63 // assigned to output sections that occur earlier in the output binary. 64 // Naturally, this means different sections' finalize() methods cannot execute 83 // For output sections that don't have explicit ordering requirements, their [all …]
|
H A D | OutputSegment.cpp | 55 for (const OutputSection *osec : sections) in numNonHiddenSections() 64 sections.push_back(osec); in addOutputSection() 83 // sections must be ordered after other sections). in segmentOrder() 90 // Sections are uniquely identified by their segment + section name. in sectionOrder() 106 // the end of the last one. We therefore arrange these sections contiguously in sectionOrder() 108 // sections must be at the end of their segments, and since TLV data in sectionOrder() 109 // sections can be zerofills, we end up putting all TLV data sections at the in sectionOrder() 143 // ZeroFill sections must always be the at the end of their segments: in sectionOrder() 145 // size to detect if a segment has zerofill sections, and if so it maps in sectionOrder() 153 // Must be stable_sort() to keep special sections such as in sortOutputSections() [all …]
|
/freebsd-src/contrib/diff/doc/ |
H A D | fdl.texi | 69 The ``Invariant Sections'' are certain Secondary Sections whose titles 70 are designated, as being those of Invariant Sections, in the notice 74 Invariant Sections. If the Document does not identify any Invariant 75 Sections then there are none. 188 the conditions of sections 2 and 3 above, provided that you release 226 Preserve in that license notice the full lists of Invariant Sections 257 Preserve all the Invariant Sections of the Document, 273 If the Modified Version includes new front-matter sections or 274 appendices that qualify as Secondary Sections and contain no material 276 of these sections as invariant. To do this, add their titles to the [all …]
|
/freebsd-src/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | BasicBlockSections.cpp | 11 // The purpose of this pass is to assign sections to basic blocks when 12 // -fbasic-block-sections= option is used. Further, with profile information 13 // only the subset of basic blocks with profiles are placed in separate sections 17 // Basic Block Sections 20 // With option, -fbasic-block-sections=list, every function may be split into 25 // allow the linker to reorder the sections in any arbitrary sequence. A global 26 // order of these sections would encapsulate the function layout. 55 // needs special handling with basic block sections. DebugInfo needs to be 56 // emitted with more relocations as basic block sections can break a 113 return "Basic Block Sections Analysi in getPassName() [all...] |
/freebsd-src/contrib/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/ |
H A D | RuntimeDyldCOFFI386.h | 80 SectionEntry &AddendSection = Sections[SectionID]; in processRelocationRef() 143 const auto Section = Sections[RE.SectionID]; in resolveRelocation() 153 RE.Sections.SectionA == static_cast<uint32_t>(-1) in resolveRelocation() 155 : Sections[RE.Sections.SectionA].getLoadAddressWithOffset( in resolveRelocation() 160 << " TargetSection: " << RE.Sections.SectionA in resolveRelocation() 170 Sections[RE.Sections.SectionA].getLoadAddressWithOffset(RE.Addend) - in resolveRelocation() 171 Sections[0].getLoadAddress(); in resolveRelocation() 175 << " TargetSection: " << RE.Sections.SectionA in resolveRelocation() 183 uint64_t Result = RE.Sections.SectionA == static_cast<uint32_t>(-1) in resolveRelocation() 185 : Sections[RE.Sections.SectionA].getLoadAddress(); in resolveRelocation() [all …]
|
H A D | RuntimeDyldCOFFThumb.h | 106 SectionEntry &AddendSection = Sections[SectionID]; in processRelocationRef() 209 const auto Section = Sections[RE.SectionID]; in resolveRelocation() 221 RE.Sections.SectionA == static_cast<uint32_t>(-1) in resolveRelocation() 223 : Sections[RE.Sections.SectionA].getLoadAddressWithOffset(RE.Addend); in resolveRelocation() 228 << " TargetSection: " << RE.Sections.SectionA in resolveRelocation() 237 uint64_t Result = Sections[RE.Sections.SectionA].getLoadAddress() - in resolveRelocation() 238 Sections[0].getLoadAddress() + RE.Addend; in resolveRelocation() 242 << " TargetSection: " << RE.Sections.SectionA in resolveRelocation() 270 Sections[RE.Sections.SectionA].getLoadAddressWithOffset(RE.Addend); in resolveRelocation() 274 << " TargetSection: " << RE.Sections.SectionA in resolveRelocation() [all …]
|
/freebsd-src/share/misc/ |
H A D | mdoc.template | 9 .\" This next request is for sections 2 and 3 only. 15 .\" This next request is for sections 2, 3 and 9 function return values only. 17 .\" This next request is for sections 1, 6, 7 and 8 only. 20 .\" This next request is for sections 1, 6, 7 and 8 only 24 .\" This next request is for sections 1, 6, 7, 8 and 9 only 28 .\" This next request is for sections 2, 3 and 9 error and signal handling only.
|
/freebsd-src/contrib/llvm-project/llvm/lib/ObjCopy/wasm/ |
H A D | WasmReader.cpp | 21 std::vector<Section> Sections; in create() local 22 Obj->Sections.reserve(WasmObj.getNumSections()); in create() 23 for (const SectionRef &Sec : WasmObj.sections()) { in create() 25 Obj->Sections.push_back({static_cast<uint8_t>(WS.Type), in create() 27 // Give known sections standard names to allow them to be selected. (Custom in create() 28 // sections already have their names filled in by the parser). in create() 29 Section &ReaderSec = Obj->Sections.back(); in create()
|
/freebsd-src/contrib/llvm-project/llvm/lib/ObjCopy/MachO/ |
H A D | MachOReader.cpp | 64 std::vector<std::unique_ptr<Section>> Sections; in extractSections() local 77 Sections.push_back( in extractSections() 80 Section &S = *Sections.back(); in extractSections() 115 return std::move(Sections); in extractSections() 119 // For MachO sections indices start from 1. in readLoadCommands() 137 if (Expected<std::vector<std::unique_ptr<Section>>> Sections = in readLoadCommands() local 140 LC.Sections = std::move(*Sections); in readLoadCommands() 142 return Sections.takeError(); in readLoadCommands() 153 if (Expected<std::vector<std::unique_ptr<Section>>> Sections = in readLoadCommands() local 156 LC.Sections = std::move(*Sections); in readLoadCommands() [all …]
|
/freebsd-src/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | BasicBlockSectionsProfileReader.h | 1 //===-- BasicBlockSectionsProfileReader.h - BB sections profile reader pass ==// 10 // sections profile. The cluster info will be used by the basic-block-sections 11 // pass to arrange basic blocks in their sections. 86 // Returns true if basic block sections profile exist for function \p 90 // Returns a pair with first element representing whether basic block sections 92 // representing the basic block sections profile (cluster info) for this 94 // means unique basic block sections are desired for all basic blocks of the 123 // Reads the basic block sections profile for functions in this module. 133 // This contains the basic-block-sections profile. 157 // sections profile. \p Buf is a memory buffer that contains the list of [all …]
|
/freebsd-src/contrib/llvm-project/llvm/lib/ObjCopy/ELF/ |
H A D | ELFObject.cpp | 478 "--decompress-debug-sections: ch_type (" + in visit() 820 // layout sections correctly. We will fill the table with correct in fillShndxTable() 1061 // sections we also remove their relocation sections. Since we do that much in finalize() 1169 // For sections not found in segments, OriginalOffset is only used to 1170 // establish the order that sections should go in. By using the maximum in accept() 1226 // Ignore just added sections. in segmentOverlapsSegment() 1306 for (SectionBase &Sec : Obj->sections()) in build() 1307 if (Error Err = Sec.initialize(Obj->sections())) in build() 1350 // Adds sections fro in addDataSections() 1757 Expected<typename ELFFile<ELFT>::Elf_Shdr_Range> Sections = readSectionHeaders() local 1850 Expected<typename ELFFile<ELFT>::Elf_Shdr_Range> Sections = readSections() local 2307 layoutSections(Range Sections,uint64_t Offset) layoutSections() argument 2346 std::vector<SectionBase *> Sections; layoutSectionsForOnlyKeepDebug() local 2545 SectionTableRef Sections = Obj.sections(); finalize() local [all...] |
/freebsd-src/contrib/llvm-project/lld/COFF/ |
H A D | ICF.cpp | 10 // identify and merge two or more read-only sections (typically functions) 77 // merge read-only sections in a couple of cases where the address of the 86 // Under regular (not safe) ICF, all code sections are eligible. in isEligible() 91 // .pdata and .xdata unwind info sections are eligible. in isEligible() 133 // Returns true if two sections' associative children are equal. 135 // Ignore associated metadata sections that don't participate in ICF, such as in assocEquals() 150 // Compare "non-moving" part of two sections, namely everything 184 // Compare "moving" part of two sections, namely relocation targets. 230 // If the number of sections are too small to use threading, in forEachClass() 258 // Merge identical COMDAT sections in run() [all...] |
H A D | CallGraphSort.cpp | 58 std::vector<const SectionChunk *> sections; member in __anon6ad36d800111::CallGraphSort 83 sections.push_back(isec); in CallGraphSort() 95 // Ignore edges between input sections belonging to different output in CallGraphSort() 96 // sections. This is done because otherwise we would end up with clusters in CallGraphSort() 97 // containing input sections that can't actually be placed adjacently in the in CallGraphSort() 99 // would also end up moving input sections in other output sections without in CallGraphSort() 199 // Sections will be sorted by increasing order. Absent sections will have in run() 200 // priority 0 and be placed at the end of sections. in run() 204 orderMap[sections[i]] = curOrder++; in run() 221 const SectionChunk *sc = sections[i]; in run() [all …]
|