|
LLVM 24.0.0git
|
Information gathered about source DIEs. More...
#include "DWARFLinker/Parallel/DWARFLinkerCompileUnit.h"
Public Member Functions | |
| DIEInfo ()=default | |
| DIEInfo (const DIEInfo &Other) | |
| DIEInfo & | operator= (const DIEInfo &Other) |
| DieOutputPlacement | getPlacement () const |
| void | setPlacement (DieOutputPlacement Placement) |
| Sets Placement kind for the corresponding die. | |
| void | unsetPlacement () |
| Unsets Placement kind for the corresponding die. | |
| bool | setPlacementIfUnset (DieOutputPlacement Placement) |
| Sets Placement kind for the corresponding die. | |
| void | joinPlacement (DieOutputPlacement Placement) |
Atomically joins Placement into the current placement: the least-upper-bound of the lattice NotSet < {TypeTable, PlainDwarf} < Both, which is a plain OR because the values are bit flags. | |
| void | joinVariablePlacement (DieOutputPlacement Placement) |
Atomically joins Placement for a DW_TAG_variable, for which PlainDwarf is absorbing because a variable cannot occupy the type table and plain DWARF at once. | |
| void | unsetFlagsWhichSetDuringLiveAnalysis () |
| DIE is a part of the linked output. | |
| void | eraseData () |
| Erase all flags. | |
| LLVM_DUMP_METHOD void | dump () |
| bool | needToPlaceInTypeTable () const |
| bool | needToKeepInPlainDwarf () const |
Public Attributes | |
| std::atomic< uint16_t > | Flags = {0} |
| Data member keeping various flags. | |
Information gathered about source DIEs.
Definition at line 182 of file DWARFLinkerCompileUnit.h.
|
default |
Referenced by DIEInfo(), and operator=().
Definition at line 184 of file DWARFLinkerCompileUnit.h.
References DIEInfo(), Flags, and llvm::Other.
| LLVM_DUMP_METHOD void llvm::CompileUnit::DIEInfo::dump | ( | ) |
Definition at line 22 of file DWARFLinkerCompileUnit.cpp.
References llvm::errs(), llvm::formatv(), llvm::Keep, and LLVM_DUMP_METHOD.
|
inline |
|
inline |
Definition at line 194 of file DWARFLinkerCompileUnit.h.
References Flags.
Referenced by llvm::dwarf_linker::classic::CompileUnit::DIEInfo::dump(), needToKeepInPlainDwarf(), and needToPlaceInTypeTable().
|
inline |
Atomically joins Placement into the current placement: the least-upper-bound of the lattice NotSet < {TypeTable, PlainDwarf} < Both, which is a plain OR because the values are bit flags.
The join is monotone and never clears a bit, so unlike setPlacement it composes correctly when applied concurrently from several marks.
Definition at line 228 of file DWARFLinkerCompileUnit.h.
|
inline |
Atomically joins Placement for a DW_TAG_variable, for which PlainDwarf is absorbing because a variable cannot occupy the type table and plain DWARF at once.
Once the placement is (or concurrently becomes) PlainDwarf it stays PlainDwarf, otherwise Placement is OR-joined. Recomputing inside the compare_exchange loop keeps a racing PlainDwarf mark from turning the variable into Both.
Definition at line 240 of file DWARFLinkerCompileUnit.h.
References llvm::dwarf_linker::parallel::CompileUnit::Both, Flags, Placement, and llvm::dwarf_linker::parallel::CompileUnit::PlainDwarf.
|
inline |
Definition at line 313 of file DWARFLinkerCompileUnit.h.
References llvm::dwarf_linker::parallel::CompileUnit::Both, getPlacement(), and llvm::dwarf_linker::parallel::CompileUnit::PlainDwarf.
Referenced by llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain().
|
inline |
Definition at line 307 of file DWARFLinkerCompileUnit.h.
References llvm::dwarf_linker::parallel::CompileUnit::Both, getPlacement(), and llvm::dwarf_linker::parallel::CompileUnit::TypeTable.
Referenced by llvm::dwarf_linker::parallel::DIEAttributeCloner::cloneDieRefAttr(), llvm::dwarf_linker::parallel::DependencyTracker::markParentsAsKeepingChildren(), llvm::dwarf_linker::parallel::DependencyTracker::updateDependenciesCompleteness(), and llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain().
|
inline |
Definition at line 185 of file DWARFLinkerCompileUnit.h.
References DIEInfo(), Flags, and llvm::Other.
|
inline |
Sets Placement kind for the corresponding die.
Definition at line 199 of file DWARFLinkerCompileUnit.h.
References Flags, and Placement.
Referenced by llvm::dwarf_linker::parallel::DependencyTracker::resolveDependenciesAndMarkLiveness(), and llvm::dwarf_linker::parallel::DependencyTracker::setPlainDwarfPlacementRec().
|
inline |
Sets Placement kind for the corresponding die.
Definition at line 214 of file DWARFLinkerCompileUnit.h.
References Flags, llvm::dwarf_linker::parallel::CompileUnit::NotSet, and Placement.
|
inline |
DIE is a part of the linked output.
DIE has children which are part of the linked output. DIE has children which are part of the type table. DIE is in module scope. DIE is in function scope. DIE is in anonymous namespace scope. DIE is available for ODR type deduplication. Track liveness for the DIE. Track liveness for the DIE.
Definition at line 293 of file DWARFLinkerCompileUnit.h.
References Flags, and unsetFlagsWhichSetDuringLiveAnalysis().
Referenced by unsetFlagsWhichSetDuringLiveAnalysis().
|
inline |
Unsets Placement kind for the corresponding die.
Definition at line 207 of file DWARFLinkerCompileUnit.h.
References Flags.
| std::atomic<uint16_t> llvm::dwarf_linker::parallel::CompileUnit::DIEInfo::Flags = {0} |
Data member keeping various flags.
Definition at line 191 of file DWARFLinkerCompileUnit.h.
Referenced by DIEInfo(), eraseData(), getPlacement(), joinPlacement(), joinVariablePlacement(), operator=(), setPlacement(), setPlacementIfUnset(), unsetFlagsWhichSetDuringLiveAnalysis(), and unsetPlacement().