Lines Matching defs:Die
732 void DWARFUnit::updateAddressDieMap(DWARFDie Die) {
733 if (Die.isSubroutineDIE()) {
734 auto DIERangesOrError = Die.getAddressRanges();
749 AddrDieMap[R.LowPC] = std::make_pair(R.HighPC, Die);
759 for (DWARFDie Child = Die.getFirstChild(); Child; Child = Child.getSibling())
777 void DWARFUnit::updateVariableDieMap(DWARFDie Die) {
778 for (DWARFDie Child : Die) {
784 if (Die.getTag() != DW_TAG_variable)
788 Die.getLocations(DW_AT_location);
843 if (Die.getAttributeValueAsReferencedDie(DW_AT_type))
844 if (std::optional<uint64_t> Size = Die.getTypeSize(getAddressByteSize()))
848 VariableDieMap[Address] = {Address + GVSize, Die};
901 DWARFDie DWARFUnit::getParent(const DWARFDebugInfoEntry *Die) {
902 if (const DWARFDebugInfoEntry *Entry = getParentEntry(Die))
909 DWARFUnit::getParentEntry(const DWARFDebugInfoEntry *Die) const {
910 if (!Die)
912 assert(Die >= DieArray.data() && Die < DieArray.data() + DieArray.size());
914 if (std::optional<uint32_t> ParentIdx = Die->getParentIdx()) {
923 DWARFDie DWARFUnit::getSibling(const DWARFDebugInfoEntry *Die) {
924 if (const DWARFDebugInfoEntry *Sibling = getSiblingEntry(Die))
931 DWARFUnit::getSiblingEntry(const DWARFDebugInfoEntry *Die) const {
932 if (!Die)
934 assert(Die >= DieArray.data() && Die < DieArray.data() + DieArray.size());
936 if (std::optional<uint32_t> SiblingIdx = Die->getSiblingIdx()) {
945 DWARFDie DWARFUnit::getPreviousSibling(const DWARFDebugInfoEntry *Die) {
946 if (const DWARFDebugInfoEntry *Sibling = getPreviousSiblingEntry(Die))
953 DWARFUnit::getPreviousSiblingEntry(const DWARFDebugInfoEntry *Die) const {
954 if (!Die)
956 assert(Die >= DieArray.data() && Die < DieArray.data() + DieArray.size());
958 std::optional<uint32_t> ParentIdx = Die->getParentIdx();
960 // Die is a root die, there is no previous sibling.
965 assert(getDIEIndex(Die) > 0 && "Die is a root die");
967 uint32_t PrevDieIdx = getDIEIndex(Die) - 1;
978 "PrevDieIdx is not a child of parent of Die");
984 DWARFDie DWARFUnit::getFirstChild(const DWARFDebugInfoEntry *Die) {
985 if (const DWARFDebugInfoEntry *Child = getFirstChildEntry(Die))
992 DWARFUnit::getFirstChildEntry(const DWARFDebugInfoEntry *Die) const {
993 if (!Die)
995 assert(Die >= DieArray.data() && Die < DieArray.data() + DieArray.size());
997 if (!Die->hasChildren())
1003 size_t I = getDIEIndex(Die) + 1;
1009 DWARFDie DWARFUnit::getLastChild(const DWARFDebugInfoEntry *Die) {
1010 if (const DWARFDebugInfoEntry *Child = getLastChildEntry(Die))
1017 DWARFUnit::getLastChildEntry(const DWARFDebugInfoEntry *Die) const {
1018 if (!Die)
1020 assert(Die >= DieArray.data() && Die < DieArray.data() + DieArray.size());
1022 if (!Die->hasChildren())
1025 if (std::optional<uint32_t> SiblingIdx = Die->getSiblingIdx()) {
1042 if (getDIEIndex(Die) == 0 && DieArray.size() > 1 &&
1045 assert(getDIEIndex(Die) ==