Lines Matching full:chunk
52 // A Chunk represents a chunk of data that will occupy space in the
56 class Chunk {
66 // Returns the size of this chunk (even if this is a common or BSS.)
69 // Returns chunk alignment in power of two form. Value values are powers of
73 // Update the chunk section alignment measured in bytes. Internally alignment
84 // Write this chunk to a mmap'ed file, assuming Buf is pointing to
91 // larger than 2GB. Chunks are always laid as part of the image, so Chunk RVAs
102 // Returns the section name if this is a section chunk.
107 // chunk has a back pointer to an output section.
115 // Returns a human-readable name of this chunk. Chunks are unnamed chunks of
128 // ARM64EC entry thunk associated with the chunk.
133 Chunk(Kind k = OtherKind) : chunkKind(k), hasData(true), p2Align(0) {} in chunkKind()
139 // false. If false is returned, the space occupied by this chunk
145 // The alignment of this chunk, stored in log2 form. The writer uses the
149 // The output section index for this chunk. The first valid section number is
153 // The RVA of this chunk in the output. The writer sets a value.
157 class NonSectionChunk : public Chunk {
161 // Returns the size of this chunk (even if this is a common or BSS.)
166 // Write this chunk to a mmap'ed file, assuming Buf is pointing to
172 // Returns the section name if this is a section chunk.
184 // Returns a human-readable name of this chunk. Chunks are unnamed chunks of
188 static bool classof(const Chunk *c) { return c->kind() >= OtherKind; } in classof()
191 NonSectionChunk(Kind k = OtherKind) : Chunk(k) {} in Chunk() function
221 // A chunk corresponding a section of an input file.
222 class SectionChunk : public Chunk {
244 static bool classof(const Chunk *c) { return c->kind() <= SectionECKind; } in classof()
280 // Called if the garbage collector decides to not include this chunk
284 // Adds COMDAT associative sections to this COMDAT section. A chunk
290 // True if this is a codeview debug info chunk. These will not be laid out in
296 // True if this is a DWARF debug info or exception handling chunk.
301 // Allow iteration over the bodies of this chunk's relocated symbols.
348 // The section ID this chunk belongs to in its Obj.
359 // The file that this chunk was created from.
365 // The COMDAT leader symbol if this is a COMDAT chunk.
379 // The COMDAT selection if this is a COMDAT chunk.
382 // A pointer pointing to a replacement for this chunk.
383 // Initially it points to "this" object. If this chunk is merged
384 // with other chunk by ICF, it points to another chunk,
385 // and this chunk is considered as dead.
405 // A section chunk corresponding a section of an EC input file.
408 static bool classof(const Chunk *c) { return c->kind() == SectionECKind; } in classof()
417 inline size_t Chunk::getSize() const { in getSize()
423 inline uint32_t Chunk::getOutputCharacteristics() const { in getOutputCharacteristics()
429 inline void Chunk::writeTo(uint8_t *buf) const { in writeTo()
436 inline StringRef Chunk::getSectionName() const { in getSectionName()
442 inline void Chunk::getBaserels(std::vector<Baserel> *res) { in getBaserels()
449 inline StringRef Chunk::getDebugName() const { in getDebugName()
455 inline MachineTypes Chunk::getMachine() const { in getMachine()
461 inline llvm::Triple::ArchType Chunk::getArch() const { in getArch()
465 inline std::optional<chpe_range_type> Chunk::getArm64ECRangeType() const { in getArm64ECRangeType()
508 // A chunk for common symbols. Common chunks don't have actual data.
520 // A chunk for linker-created strings.
548 // A chunk for DLL import jump table entry. In a final output, its
554 static bool classof(const Chunk *c) { return c->kind() == ImportThunkKind; } in classof()
648 // Duplicate RVAs are not allowed in RVA tables, so unique symbols by chunk and
649 // offset into the chunk. Order does not matter as the RVA table will be sorted
652 Chunk *inputChunk;
657 return {llvm::DenseMapInfo<Chunk *>::getEmptyKey(), 0}; in getEmptyKey()
660 return {llvm::DenseMapInfo<Chunk *>::getTombstoneKey(), 0}; in getTombstoneKey()
663 return llvm::DenseMapInfo<std::pair<Chunk *, uint32_t>>::getHashValue( in getHashValue()
720 // This is a placeholder Chunk, to allow attaching a DefinedSynthetic to a
723 // of an empty chunk isn't MinGW specific.
733 ECCodeMapEntry(Chunk *first, Chunk *last, chpe_range_type type) in ECCodeMapEntry()
735 Chunk *first;
736 Chunk *last;
740 // This is a chunk containing CHPE code map on EC targets. It's a table
771 // MinGW specific. A Chunk that contains one pointer-sized absolute value.
789 inline bool Chunk::isHotPatchable() const { in isHotPatchable()
797 inline Defined *Chunk::getEntryThunk() const { in getEntryThunk()
803 inline void Chunk::setEntryThunk(Defined *entryThunk) { in setEntryThunk()
826 FakeSectionChunk(const coff_section *section) : chunk(nullptr, section) { in FakeSectionChunk()
830 chunk.selection = llvm::COFF::IMAGE_COMDAT_SELECT_ANY; in FakeSectionChunk()
833 SectionChunk chunk; variable