Skip to content

Commit 370e476

Browse files
committed
[BOLT][NFC] Use std::optional for findAttributeInfo
LLVM started switching from `llvm::Optional` to `std::optional`: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716/11 Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D139259
1 parent 59ae452 commit 370e476

File tree

3 files changed

+31
-29
lines changed

3 files changed

+31
-29
lines changed

bolt/include/bolt/Core/DebugData.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ struct AttrInfo {
4646
/// \param DIE die to look up in.
4747
/// \param AbbrevDecl abbrev declaration for the die.
4848
/// \param Index an index in Abbrev declaration entry.
49-
Optional<AttrInfo>
49+
std::optional<AttrInfo>
5050
findAttributeInfo(const DWARFDie DIE,
5151
const DWARFAbbreviationDeclaration *AbbrevDecl,
5252
uint32_t Index);
@@ -56,7 +56,8 @@ findAttributeInfo(const DWARFDie DIE,
5656
/// \param DIE die to look up in.
5757
/// \param Attr the attribute to extract.
5858
/// \return an optional AttrInfo with DWARFFormValue and Offset.
59-
Optional<AttrInfo> findAttributeInfo(const DWARFDie DIE, dwarf::Attribute Attr);
59+
std::optional<AttrInfo> findAttributeInfo(const DWARFDie DIE,
60+
dwarf::Attribute Attr);
6061

6162
// DWARF5 Header in order of encoding.
6263
// Types represent encodnig sizes.

bolt/lib/Core/DebugData.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class MCSymbol;
4242

4343
namespace bolt {
4444

45-
Optional<AttrInfo>
45+
std::optional<AttrInfo>
4646
findAttributeInfo(const DWARFDie DIE,
4747
const DWARFAbbreviationDeclaration *AbbrevDecl,
4848
uint32_t Index) {
@@ -73,8 +73,8 @@ findAttributeInfo(const DWARFDie DIE,
7373
return AttrInfo{*Value, DIE.getAbbreviationDeclarationPtr(), Offset, ValSize};
7474
}
7575

76-
Optional<AttrInfo> findAttributeInfo(const DWARFDie DIE,
77-
dwarf::Attribute Attr) {
76+
std::optional<AttrInfo> findAttributeInfo(const DWARFDie DIE,
77+
dwarf::Attribute Attr) {
7878
if (!DIE.isValid())
7979
return std::nullopt;
8080
const DWARFAbbreviationDeclaration *AbbrevDecl =
@@ -666,7 +666,7 @@ void DebugLoclistWriter::finalizeDWARF5(
666666
*LocStream << *LocBodyBuffer;
667667

668668
if (!isSplitDwarf()) {
669-
if (Optional<AttrInfo> AttrInfoVal =
669+
if (std::optional<AttrInfo> AttrInfoVal =
670670
findAttributeInfo(CU.getUnitDIE(), dwarf::DW_AT_loclists_base))
671671
DebugInfoPatcher.addLE32Patch(AttrInfoVal->Offset,
672672
LoclistBaseOffset +
@@ -733,7 +733,7 @@ void DebugInfoBinaryPatcher::insertNewEntry(const DWARFDie &DIE,
733733
uint32_t Offset = DIE.getOffset() + 1;
734734
size_t NumOfAttributes = AbbrevDecl->getNumAttributes();
735735
if (NumOfAttributes) {
736-
Optional<AttrInfo> Val =
736+
std::optional<AttrInfo> Val =
737737
findAttributeInfo(DIE, AbbrevDecl, NumOfAttributes - 1);
738738
assert(Val && "Invalid Value.");
739739

bolt/lib/Rewrite/DWARFRewriter.cpp

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ namespace bolt {
6262
/// \param DIE die to look up in.
6363
/// \param Attrs finds the first attribute that matches and extracts it.
6464
/// \return an optional AttrInfo with DWARFFormValue and Offset.
65-
Optional<AttrInfo> findAttributeInfo(const DWARFDie DIE,
66-
std::vector<dwarf::Attribute> Attrs) {
65+
std::optional<AttrInfo> findAttributeInfo(const DWARFDie DIE,
66+
std::vector<dwarf::Attribute> Attrs) {
6767
for (dwarf::Attribute &Attr : Attrs)
68-
if (Optional<AttrInfo> Info = findAttributeInfo(DIE, Attr))
68+
if (std::optional<AttrInfo> Info = findAttributeInfo(DIE, Attr))
6969
return Info;
7070
return std::nullopt;
7171
}
@@ -230,7 +230,7 @@ void DWARFRewriter::updateDebugInfo() {
230230

231231
auto updateDWONameCompDir = [&](DWARFUnit &Unit) -> void {
232232
const DWARFDie &DIE = Unit.getUnitDIE();
233-
Optional<AttrInfo> AttrInfoVal = findAttributeInfo(
233+
std::optional<AttrInfo> AttrInfoVal = findAttributeInfo(
234234
DIE, {dwarf::DW_AT_dwo_name, dwarf::DW_AT_GNU_dwo_name});
235235
(void)AttrInfoVal;
236236
assert(AttrInfoVal && "Skeleton CU doesn't have dwo_name.");
@@ -514,11 +514,11 @@ void DWARFRewriter::updateUnitDebugInfo(
514514
}
515515
};
516516

517-
if (Optional<AttrInfo> AttrVal =
517+
if (std::optional<AttrInfo> AttrVal =
518518
findAttributeInfo(DIE, dwarf::DW_AT_call_pc))
519519
patchPC(*AttrVal, "DW_AT_call_pc");
520520

521-
if (Optional<AttrInfo> AttrVal =
521+
if (std::optional<AttrInfo> AttrVal =
522522
findAttributeInfo(DIE, dwarf::DW_AT_call_return_pc))
523523
patchPC(*AttrVal, "DW_AT_call_return_pc");
524524

@@ -528,7 +528,7 @@ void DWARFRewriter::updateUnitDebugInfo(
528528
// Handle any tag that can have DW_AT_location attribute.
529529
DWARFFormValue Value;
530530
uint64_t AttrOffset;
531-
if (Optional<AttrInfo> AttrVal =
531+
if (std::optional<AttrInfo> AttrVal =
532532
findAttributeInfo(DIE, dwarf::DW_AT_location)) {
533533
AttrOffset = AttrVal->Offset;
534534
Value = AttrVal->V;
@@ -690,7 +690,7 @@ void DWARFRewriter::updateUnitDebugInfo(
690690
SizeDiff + CurrEndOffset, 1);
691691
}
692692
}
693-
} else if (Optional<AttrInfo> AttrVal =
693+
} else if (std::optional<AttrInfo> AttrVal =
694694
findAttributeInfo(DIE, dwarf::DW_AT_low_pc)) {
695695
AttrOffset = AttrVal->Offset;
696696
Value = AttrVal->V;
@@ -736,7 +736,7 @@ void DWARFRewriter::updateUnitDebugInfo(
736736
}
737737
} else if (IsDWP && Unit.isDWOUnit()) {
738738
// Not a common path so don't want to search all DIEs all the time.
739-
Optional<AttrInfo> SignatureAttrVal =
739+
std::optional<AttrInfo> SignatureAttrVal =
740740
findAttributeInfo(DIE, dwarf::DW_AT_signature);
741741
if (!SignatureAttrVal)
742742
continue;
@@ -771,7 +771,8 @@ void DWARFRewriter::updateUnitDebugInfo(
771771
case dwarf::DW_FORM_ref8:
772772
case dwarf::DW_FORM_ref_udata:
773773
case dwarf::DW_FORM_ref_addr: {
774-
Optional<AttrInfo> AttrVal = findAttributeInfo(DIE, AbbrevDecl, Index);
774+
std::optional<AttrInfo> AttrVal =
775+
findAttributeInfo(DIE, AbbrevDecl, Index);
775776
uint32_t DestinationAddress =
776777
AttrVal->V.getRawUValue() +
777778
(Decl.Form == dwarf::DW_FORM_ref_addr ? 0 : Unit.getOffset());
@@ -813,7 +814,7 @@ void DWARFRewriter::updateDWARFObjectAddressRanges(
813814
if (RangesBase) {
814815
// If DW_AT_GNU_ranges_base is present, update it. No further modifications
815816
// are needed for ranges base.
816-
Optional<AttrInfo> RangesBaseAttrInfo =
817+
std::optional<AttrInfo> RangesBaseAttrInfo =
817818
findAttributeInfo(DIE, dwarf::DW_AT_GNU_ranges_base);
818819
if (!RangesBaseAttrInfo)
819820
RangesBaseAttrInfo = findAttributeInfo(DIE, dwarf::DW_AT_rnglists_base);
@@ -826,9 +827,9 @@ void DWARFRewriter::updateDWARFObjectAddressRanges(
826827
}
827828
}
828829

829-
Optional<AttrInfo> LowPCAttrInfo =
830+
std::optional<AttrInfo> LowPCAttrInfo =
830831
findAttributeInfo(DIE, dwarf::DW_AT_low_pc);
831-
if (Optional<AttrInfo> AttrVal =
832+
if (std::optional<AttrInfo> AttrVal =
832833
findAttributeInfo(DIE, dwarf::DW_AT_ranges)) {
833834
// Case 1: The object was already non-contiguous and had DW_AT_ranges.
834835
// In this case we simply need to update the value of DW_AT_ranges
@@ -881,7 +882,7 @@ void DWARFRewriter::updateDWARFObjectAddressRanges(
881882

882883
// Case 2: The object has both DW_AT_low_pc and DW_AT_high_pc emitted back
883884
// to back. Replace with new attributes and patch the DIE.
884-
Optional<AttrInfo> HighPCAttrInfo =
885+
std::optional<AttrInfo> HighPCAttrInfo =
885886
findAttributeInfo(DIE, dwarf::DW_AT_high_pc);
886887
if (LowPCAttrInfo && HighPCAttrInfo) {
887888
convertToRangesPatchAbbrev(*DIE.getDwarfUnit(), AbbreviationDecl,
@@ -937,7 +938,7 @@ void DWARFRewriter::updateLineTableOffsets(const MCAsmLayout &Layout) {
937938
if (!Label)
938939
continue;
939940

940-
Optional<AttrInfo> AttrVal =
941+
std::optional<AttrInfo> AttrVal =
941942
findAttributeInfo(CU.get()->getUnitDIE(), dwarf::DW_AT_stmt_list);
942943
if (!AttrVal)
943944
continue;
@@ -951,7 +952,7 @@ void DWARFRewriter::updateLineTableOffsets(const MCAsmLayout &Layout) {
951952

952953
for (const std::unique_ptr<DWARFUnit> &TU : BC.DwCtx->types_section_units()) {
953954
DWARFUnit *Unit = TU.get();
954-
Optional<AttrInfo> AttrVal =
955+
std::optional<AttrInfo> AttrVal =
955956
findAttributeInfo(TU.get()->getUnitDIE(), dwarf::DW_AT_stmt_list);
956957
if (!AttrVal)
957958
continue;
@@ -1039,9 +1040,9 @@ DWARFRewriter::finalizeDebugSections(DebugInfoBinaryPatcher &DebugInfoPatcher) {
10391040
uint64_t Offset = 0;
10401041
uint64_t AttrOffset = 0;
10411042
uint32_t Size = 0;
1042-
Optional<AttrInfo> AttrValGnu =
1043+
std::optional<AttrInfo> AttrValGnu =
10431044
findAttributeInfo(DIE, dwarf::DW_AT_GNU_addr_base);
1044-
Optional<AttrInfo> AttrVal =
1045+
std::optional<AttrInfo> AttrVal =
10451046
findAttributeInfo(DIE, dwarf::DW_AT_addr_base);
10461047

10471048
// For cases where Skeleton CU does not have DW_AT_GNU_addr_base
@@ -1827,8 +1828,8 @@ std::unique_ptr<DebugBufferVector> DWARFRewriter::makeFinalLocListsSection(
18271828

18281829
namespace {
18291830

1830-
void getRangeAttrData(DWARFDie DIE, Optional<AttrInfo> &LowPCVal,
1831-
Optional<AttrInfo> &HighPCVal) {
1831+
void getRangeAttrData(DWARFDie DIE, std::optional<AttrInfo> &LowPCVal,
1832+
std::optional<AttrInfo> &HighPCVal) {
18321833
LowPCVal = findAttributeInfo(DIE, dwarf::DW_AT_low_pc);
18331834
HighPCVal = findAttributeInfo(DIE, dwarf::DW_AT_high_pc);
18341835
uint64_t LowPCOffset = LowPCVal->Offset;
@@ -1894,8 +1895,8 @@ void DWARFRewriter::convertToRangesPatchDebugInfo(
18941895
DWARFDie DIE, uint64_t RangesSectionOffset,
18951896
SimpleBinaryPatcher &DebugInfoPatcher, uint64_t LowPCToUse,
18961897
Optional<uint64_t> RangesBase) {
1897-
Optional<AttrInfo> LowPCVal;
1898-
Optional<AttrInfo> HighPCVal;
1898+
std::optional<AttrInfo> LowPCVal;
1899+
std::optional<AttrInfo> HighPCVal;
18991900
getRangeAttrData(DIE, LowPCVal, HighPCVal);
19001901
uint64_t LowPCOffset = LowPCVal->Offset;
19011902
uint64_t HighPCOffset = HighPCVal->Offset;

0 commit comments

Comments
 (0)