std::string Filename;
/// Unique build ID if available for the binary.
- Optional<std::string> FileBuildID;
+ std::optional<std::string> FileBuildID;
/// Set of all sections.
struct CompareSections {
void clearFragmentsToSkip() { FragmentsToSkip.clear(); }
/// Given DWOId returns CU if it exists in DWOCUs.
- Optional<DWARFUnit *> getDWOCU(uint64_t DWOId);
+ std::optional<DWARFUnit *> getDWOCU(uint64_t DWOId);
/// Returns DWOContext if it exists.
DWARFContext *getDWOContext() const;
StringRef getFilename() const { return Filename; }
void setFilename(StringRef Name) { Filename = std::string(Name); }
- Optional<StringRef> getFileBuildID() const {
+ std::optional<StringRef> getFileBuildID() const {
if (FileBuildID)
return StringRef(*FileBuildID);
/// mapping. Note that \p FileOffset should be page-aligned and could be
/// different from the file offset of the segment which could be unaligned.
/// If no segment is found that matches \p FileOffset, return std::nullopt.
- Optional<uint64_t> getBaseAddressForMapping(uint64_t MMapAddress,
- uint64_t FileOffset) const;
+ std::optional<uint64_t> getBaseAddressForMapping(uint64_t MMapAddress,
+ uint64_t FileOffset) const;
/// Check if the address belongs to this binary's static allocation space.
bool containsAddress(uint64_t Address) const {
return AllFunctions;
}
-Optional<DWARFUnit *> BinaryContext::getDWOCU(uint64_t DWOId) {
+std::optional<DWARFUnit *> BinaryContext::getDWOCU(uint64_t DWOId) {
auto Iter = DWOCUs.find(DWOId);
if (Iter == DWOCUs.end())
return std::nullopt;
}
}
-Optional<uint64_t>
+std::optional<uint64_t>
BinaryContext::getBaseAddressForMapping(uint64_t MMapAddress,
uint64_t FileOffset) const {
// Find a segment with a matching file offset.
return Error::success();
}
- if (Optional<StringRef> FileBuildID = BC.getFileBuildID()) {
+ if (std::optional<StringRef> FileBuildID = BC.getFileBuildID()) {
outs() << "BOLT-INFO: binary build-id is: " << *FileBuildID << "\n";
processFileBuildID(*FileBuildID);
} else {
// Set base address for shared objects.
if (!BC->HasFixedLoadAddress) {
- Optional<uint64_t> BaseAddress =
+ std::optional<uint64_t> BaseAddress =
BC->getBaseAddressForMapping(MMapInfo.MMapAddress, MMapInfo.Offset);
if (!BaseAddress) {
errs() << "PERF2BOLT-WARNING: unable to find base address of the "
// Fill out the header info.
BP.Header.Version = 1;
BP.Header.FileName = std::string(BC.getFilename());
- Optional<StringRef> BuildID = BC.getFileBuildID();
+ std::optional<StringRef> BuildID = BC.getFileBuildID();
BP.Header.Id = BuildID ? std::string(*BuildID) : "<unknown>";
BP.Header.Origin = std::string(RI.getProfileReader()->getReaderName());
auto processUnitDIE = [&](size_t CUIndex, DWARFUnit *Unit) {
// Check if the unit is a skeleton and we need special updates for it and
// its matching split/DWO CU.
- Optional<DWARFUnit *> SplitCU;
+ std::optional<DWARFUnit *> SplitCU;
Optional<uint64_t> RangesBase;
std::optional<uint64_t> DWOId = Unit->getDWOId();
StrOffstsWriter->initialize(Unit->getStringOffsetSection(),
continue;
// Skipping CUs that we failed to load.
- Optional<DWARFUnit *> DWOCU = BC.getDWOCU(*DWOId);
+ std::optional<DWARFUnit *> DWOCU = BC.getDWOCU(*DWOId);
if (!DWOCU)
continue;
continue;
// Skipping CUs that we failed to load.
- Optional<DWARFUnit *> DWOCU = BC.getDWOCU(*DWOId);
+ std::optional<DWARFUnit *> DWOCU = BC.getDWOCU(*DWOId);
if (!DWOCU)
continue;