Skip to content

Commit

Permalink
Use None consistently (NFC)
Browse files Browse the repository at this point in the history
This patch replaces NoneType() and NoneType::None with None in
preparation for migration from llvm::Optional to std::optional.

In the std::optional world, we are not guranteed to be able to
default-construct std::nullopt_t or peek what's inside it, so neither
NoneType() nor NoneType::None has a corresponding expression in the
std::optional world.

Once we consistently use None, we should even be able to replace the
contents of llvm/include/llvm/ADT/None.h with something like:

  using NoneType = std::nullopt_t;
  inline constexpr std::nullopt_t None = std::nullopt;

to ease the migration from llvm::Optional to std::optional.

Differential Revision: https://reviews.llvm.org/D138376
  • Loading branch information
kazutakahirata committed Nov 20, 2022
1 parent 92bccf5 commit 1fa870b
Show file tree
Hide file tree
Showing 21 changed files with 54 additions and 56 deletions.
2 changes: 1 addition & 1 deletion bolt/include/bolt/Core/BinaryContext.h
Expand Up @@ -323,7 +323,7 @@ class BinaryContext {
if (FileBuildID)
return StringRef(*FileBuildID);

return NoneType();
return None;
}
void setFileBuildID(StringRef ID) { FileBuildID = std::string(ID); }

Expand Down
4 changes: 2 additions & 2 deletions bolt/include/bolt/Core/BinaryFunction.h
Expand Up @@ -979,7 +979,7 @@ class BinaryFunction {
if (Callback(StringRef(Name)))
return StringRef(Name);

return NoneType();
return None;
}

/// Check if (possibly one out of many) function name matches the given
Expand Down Expand Up @@ -1317,7 +1317,7 @@ class BinaryFunction {
/// Return the name of the section this function originated from.
Optional<StringRef> getOriginSectionName() const {
if (!OriginSection)
return NoneType();
return None;
return OriginSection->getName();
}

Expand Down
6 changes: 3 additions & 3 deletions bolt/include/bolt/Core/MCPlusBuilder.h
Expand Up @@ -136,7 +136,7 @@ class MCPlusBuilder {
unsigned Index) const {
const MCInst *AnnotationInst = getAnnotationInst(Inst);
if (!AnnotationInst)
return NoneType();
return None;

for (int I = AnnotationInst->getNumOperands() - 1; I >= 0; --I) {
int64_t ImmValue = AnnotationInst->getOperand(I).getImm();
Expand All @@ -145,7 +145,7 @@ class MCPlusBuilder {
}
}

return NoneType();
return None;
}

protected:
Expand Down Expand Up @@ -1670,7 +1670,7 @@ class MCPlusBuilder {
auto AI = AnnotationNameIndexMap.find(Name);
if (AI != AnnotationNameIndexMap.end())
return AI->second;
return NoneType();
return None;
}

/// Return annotation index matching the \p Name. Create a new index if the
Expand Down
2 changes: 1 addition & 1 deletion bolt/lib/Core/BinaryContext.cpp
Expand Up @@ -1898,7 +1898,7 @@ BinaryContext::getBaseAddressForMapping(uint64_t MMapAddress,
}
}

return NoneType();
return None;
}

ErrorOr<BinarySection &> BinaryContext::getSectionForAddress(uint64_t Address) {
Expand Down
10 changes: 5 additions & 5 deletions bolt/lib/Core/MCPlusBuilder.cpp
Expand Up @@ -135,15 +135,15 @@ bool MCPlusBuilder::isTailCall(const MCInst &Inst) const {

Optional<MCLandingPad> MCPlusBuilder::getEHInfo(const MCInst &Inst) const {
if (!isCall(Inst))
return NoneType();
return None;
Optional<int64_t> LPSym =
getAnnotationOpValue(Inst, MCAnnotation::kEHLandingPad);
if (!LPSym)
return NoneType();
return None;
Optional<int64_t> Action =
getAnnotationOpValue(Inst, MCAnnotation::kEHAction);
if (!Action)
return NoneType();
return None;

return std::make_pair(reinterpret_cast<const MCSymbol *>(*LPSym),
static_cast<uint64_t>(*Action));
Expand Down Expand Up @@ -221,7 +221,7 @@ MCPlusBuilder::getConditionalTailCall(const MCInst &Inst) const {
Optional<int64_t> Value =
getAnnotationOpValue(Inst, MCAnnotation::kConditionalTailCall);
if (!Value)
return NoneType();
return None;
return static_cast<uint64_t>(*Value);
}

Expand All @@ -243,7 +243,7 @@ bool MCPlusBuilder::unsetConditionalTailCall(MCInst &Inst) {
Optional<uint32_t> MCPlusBuilder::getOffset(const MCInst &Inst) const {
Optional<int64_t> Value = getAnnotationOpValue(Inst, MCAnnotation::kOffset);
if (!Value)
return NoneType();
return None;
return static_cast<uint32_t>(*Value);
}

Expand Down
2 changes: 1 addition & 1 deletion bolt/lib/Profile/BoltAddressTranslation.cpp
Expand Up @@ -263,7 +263,7 @@ BoltAddressTranslation::getFallthroughsInTrace(uint64_t FuncAddress,

auto Iter = Maps.find(FuncAddress);
if (Iter == Maps.end())
return NoneType();
return None;

const MapTy &Map = Iter->second;
auto FromIter = Map.upper_bound(From);
Expand Down
26 changes: 13 additions & 13 deletions bolt/lib/Profile/DataAggregator.cpp
Expand Up @@ -943,7 +943,7 @@ DataAggregator::getFallthroughsInTrace(BinaryFunction &BF,
SmallVector<std::pair<uint64_t, uint64_t>, 16> Res;

if (!recordTrace(BF, FirstLBR, SecondLBR, Count, &Res))
return NoneType();
return None;

return Res;
}
Expand Down Expand Up @@ -1820,13 +1820,13 @@ Optional<int32_t> DataAggregator::parseCommExecEvent() {
if (LineEnd == StringRef::npos) {
reportError("expected rest of line");
Diag << "Found: " << ParsingBuf << "\n";
return NoneType();
return None;
}
StringRef Line = ParsingBuf.substr(0, LineEnd);

size_t Pos = Line.find("PERF_RECORD_COMM exec");
if (Pos == StringRef::npos)
return NoneType();
return None;
Line = Line.drop_front(Pos);

// Line:
Expand All @@ -1836,7 +1836,7 @@ Optional<int32_t> DataAggregator::parseCommExecEvent() {
if (PIDStr.getAsInteger(10, PID)) {
reportError("expected PID");
Diag << "Found: " << PIDStr << "in '" << Line << "'\n";
return NoneType();
return None;
}

return PID;
Expand All @@ -1850,7 +1850,7 @@ Optional<uint64_t> parsePerfTime(const StringRef TimeStr) {
uint64_t USecTime;
if (SecTimeStr.getAsInteger(10, SecTime) ||
USecTimeStr.getAsInteger(10, USecTime))
return NoneType();
return None;
return SecTime * 1000000ULL + USecTime;
}
}
Expand All @@ -1863,14 +1863,14 @@ Optional<DataAggregator::ForkInfo> DataAggregator::parseForkEvent() {
if (LineEnd == StringRef::npos) {
reportError("expected rest of line");
Diag << "Found: " << ParsingBuf << "\n";
return NoneType();
return None;
}
StringRef Line = ParsingBuf.substr(0, LineEnd);

size_t Pos = Line.find("PERF_RECORD_FORK");
if (Pos == StringRef::npos) {
consumeRestOfLine();
return NoneType();
return None;
}

ForkInfo FI;
Expand All @@ -1889,14 +1889,14 @@ Optional<DataAggregator::ForkInfo> DataAggregator::parseForkEvent() {
if (ChildPIDStr.getAsInteger(10, FI.ChildPID)) {
reportError("expected PID");
Diag << "Found: " << ChildPIDStr << "in '" << Line << "'\n";
return NoneType();
return None;
}

const StringRef ParentPIDStr = Line.rsplit('(').second.split(':').first;
if (ParentPIDStr.getAsInteger(10, FI.ParentPID)) {
reportError("expected PID");
Diag << "Found: " << ParentPIDStr << "in '" << Line << "'\n";
return NoneType();
return None;
}

consumeRestOfLine();
Expand Down Expand Up @@ -2147,17 +2147,17 @@ DataAggregator::parseNameBuildIDPair() {

ErrorOr<StringRef> BuildIDStr = parseString(FieldSeparator, true);
if (std::error_code EC = BuildIDStr.getError())
return NoneType();
return None;

// If one of the strings is missing, don't issue a parsing error, but still
// do not return a value.
consumeAllRemainingFS();
if (checkNewLine())
return NoneType();
return None;

ErrorOr<StringRef> NameStr = parseString(FieldSeparator, true);
if (std::error_code EC = NameStr.getError())
return NoneType();
return None;

consumeRestOfLine();
return std::make_pair(NameStr.get(), BuildIDStr.get());
Expand Down Expand Up @@ -2205,7 +2205,7 @@ DataAggregator::getFileNameForBuildID(StringRef FileBuildID) {
if (!FileName.empty())
return FileName;

return NoneType();
return None;
}

std::error_code
Expand Down
2 changes: 1 addition & 1 deletion bolt/lib/Profile/DataReader.cpp
Expand Up @@ -49,7 +49,7 @@ Optional<StringRef> getLTOCommonName(const StringRef Name) {
return Name.substr(0, LTOSuffixPos + 11);
if ((LTOSuffixPos = Name.find(".llvm.")) != StringRef::npos)
return Name.substr(0, LTOSuffixPos + 6);
return NoneType();
return None;
}

namespace {
Expand Down
4 changes: 2 additions & 2 deletions bolt/lib/Rewrite/RewriteInstance.cpp
Expand Up @@ -681,7 +681,7 @@ void RewriteInstance::parseBuildID() {

Optional<std::string> RewriteInstance::getPrintableBuildID() const {
if (BuildID.empty())
return NoneType();
return None;

std::string Str;
raw_string_ostream OS(Str);
Expand Down Expand Up @@ -4763,7 +4763,7 @@ void RewriteInstance::updateELFSymbolTable(
assert(SymbolName && "cannot get symbol name");

auto updateSymbolValue = [&](const StringRef Name,
Optional<uint64_t> Value = NoneType()) {
Optional<uint64_t> Value = None) {
NewSymbol.st_value = Value ? *Value : getNewValueForSymbol(Name);
NewSymbol.st_shndx = ELF::SHN_ABS;
outs() << "BOLT-INFO: setting " << Name << " to 0x"
Expand Down
4 changes: 2 additions & 2 deletions bolt/lib/Target/X86/X86MCPlusBuilder.cpp
Expand Up @@ -2600,7 +2600,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
if (FKI.Flags & MCFixupKindInfo::FKF_IsPCRel) {
switch (FKI.TargetSize) {
default:
return NoneType();
return None;
case 8: RelType = ELF::R_X86_64_PC8; break;
case 16: RelType = ELF::R_X86_64_PC16; break;
case 32: RelType = ELF::R_X86_64_PC32; break;
Expand All @@ -2609,7 +2609,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
} else {
switch (FKI.TargetSize) {
default:
return NoneType();
return None;
case 8: RelType = ELF::R_X86_64_8; break;
case 16: RelType = ELF::R_X86_64_16; break;
case 32: RelType = ELF::R_X86_64_32; break;
Expand Down
2 changes: 1 addition & 1 deletion bolt/lib/Utils/Utils.cpp
Expand Up @@ -69,7 +69,7 @@ std::string getUnescapedName(const StringRef &Name) {
Optional<uint8_t> readDWARFExpressionTargetReg(StringRef ExprBytes) {
uint8_t Opcode = ExprBytes[0];
if (Opcode == dwarf::DW_CFA_def_cfa_expression)
return NoneType();
return None;
assert((Opcode == dwarf::DW_CFA_expression ||
Opcode == dwarf::DW_CFA_val_expression) &&
"invalid DWARF expression CFI");
Expand Down
10 changes: 5 additions & 5 deletions clang/lib/Driver/ToolChains/HLSL.cpp
Expand Up @@ -69,7 +69,7 @@ llvm::Optional<std::string> tryParseProfile(StringRef Profile) {
SmallVector<StringRef, 3> Parts;
Profile.split(Parts, "_");
if (Parts.size() != 3)
return NoneType();
return None;

Triple::EnvironmentType Kind =
StringSwitch<Triple::EnvironmentType>(Parts[0])
Expand All @@ -84,17 +84,17 @@ llvm::Optional<std::string> tryParseProfile(StringRef Profile) {
.Case("as", Triple::EnvironmentType::Amplification)
.Default(Triple::EnvironmentType::UnknownEnvironment);
if (Kind == Triple::EnvironmentType::UnknownEnvironment)
return NoneType();
return None;

unsigned long long Major = 0;
if (llvm::getAsUnsignedInteger(Parts[1], 0, Major))
return NoneType();
return None;

unsigned long long Minor = 0;
if (Parts[2] == "x" && Kind == Triple::EnvironmentType::Library)
Minor = OfflineLibMinor;
else if (llvm::getAsUnsignedInteger(Parts[2], 0, Minor))
return NoneType();
return None;

// dxil-unknown-shadermodel-hull
llvm::Triple T;
Expand All @@ -105,7 +105,7 @@ llvm::Optional<std::string> tryParseProfile(StringRef Profile) {
if (isLegalShaderModel(T))
return T.getTriple();
else
return NoneType();
return None;
}

bool isLegalValidatorVersion(StringRef ValVersionStr, const Driver &D) {
Expand Down
Expand Up @@ -50,10 +50,10 @@ getTargetIncludePaths(const llvm::Triple &triple) {
static llvm::Optional<llvm::StringRef>
guessIncludePath(llvm::StringRef path_to_file, llvm::StringRef pattern) {
if (pattern.empty())
return llvm::NoneType();
return llvm::None;
size_t pos = path_to_file.find(pattern);
if (pos == llvm::StringRef::npos)
return llvm::NoneType();
return llvm::None;

return path_to_file.substr(0, pos + pattern.size());
}
Expand Down
2 changes: 1 addition & 1 deletion llvm/include/llvm/Analysis/InlineAdvisor.h
Expand Up @@ -200,7 +200,7 @@ class InlineAdvisor {

protected:
InlineAdvisor(Module &M, FunctionAnalysisManager &FAM,
Optional<InlineContext> IC = NoneType::None);
Optional<InlineContext> IC = llvm::None);
virtual std::unique_ptr<InlineAdvice> getAdviceImpl(CallBase &CB) = 0;
virtual std::unique_ptr<InlineAdvice> getMandatoryAdvice(CallBase &CB,
bool Advice);
Expand Down
6 changes: 3 additions & 3 deletions llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h
Expand Up @@ -240,9 +240,9 @@ class ARCMDKindCache {
public:
void init(Module *Mod) {
M = Mod;
ImpreciseReleaseMDKind = NoneType::None;
CopyOnEscapeMDKind = NoneType::None;
NoObjCARCExceptionsMDKind = NoneType::None;
ImpreciseReleaseMDKind = llvm::None;
CopyOnEscapeMDKind = llvm::None;
NoObjCARCExceptionsMDKind = llvm::None;
}

unsigned get(ARCMDKindID ID) {
Expand Down
5 changes: 2 additions & 3 deletions llvm/include/llvm/IR/DebugInfoMetadata.h
Expand Up @@ -3675,8 +3675,7 @@ class DebugVariable {

DebugVariable(const DILocalVariable *Var, const DIExpression *DIExpr,
const DILocation *InlinedAt)
: Variable(Var),
Fragment(DIExpr ? DIExpr->getFragmentInfo() : NoneType()),
: Variable(Var), Fragment(DIExpr ? DIExpr->getFragmentInfo() : None),
InlinedAt(InlinedAt) {}

const DILocalVariable *getVariable() const { return Variable; }
Expand Down Expand Up @@ -3707,7 +3706,7 @@ template <> struct DenseMapInfo<DebugVariable> {

/// Empty key: no key should be generated that has no DILocalVariable.
static inline DebugVariable getEmptyKey() {
return DebugVariable(nullptr, NoneType(), nullptr);
return DebugVariable(nullptr, None, nullptr);
}

/// Difference in tombstone is that the Optional is meaningful.
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
Expand Up @@ -89,7 +89,7 @@ static bool reduceDbgValsForwardScan(MachineBasicBlock &MBB) {

for (auto &MI : MBB) {
if (MI.isDebugValue()) {
DebugVariable Var(MI.getDebugVariable(), NoneType(),
DebugVariable Var(MI.getDebugVariable(), None,
MI.getDebugLoc()->getInlinedAt());
auto VMI = VariableMap.find(Var);
// Just stop tracking this variable, until we cover DBG_VALUE_LIST.
Expand Down
5 changes: 2 additions & 3 deletions llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
Expand Up @@ -428,8 +428,7 @@ static bool removeRedundantDbgInstrsUsingForwardScan(BasicBlock *BB) {
VariableMap;
for (auto &I : *BB) {
if (DbgValueInst *DVI = dyn_cast<DbgValueInst>(&I)) {
DebugVariable Key(DVI->getVariable(),
NoneType(),
DebugVariable Key(DVI->getVariable(), None,
DVI->getDebugLoc()->getInlinedAt());
auto VMI = VariableMap.find(Key);
auto *DAI = dyn_cast<DbgAssignIntrinsic>(DVI);
Expand Down Expand Up @@ -490,7 +489,7 @@ static bool remomveUndefDbgAssignsFromEntryBlock(BasicBlock *BB) {
DenseSet<DebugVariable> SeenDefForAggregate;
// Returns the DebugVariable for DVI with no fragment info.
auto GetAggregateVariable = [](DbgValueInst *DVI) {
return DebugVariable(DVI->getVariable(), NoneType(),
return DebugVariable(DVI->getVariable(), None,
DVI->getDebugLoc()->getInlinedAt());
};

Expand Down
Expand Up @@ -159,7 +159,7 @@ void DWARFExpressionCopyBytesTest::parseCFIsAndCheckExpression(
return Instr;
}
}
return NoneType();
return None;
};

std::unique_ptr<DWARFContext> Ctx = DWARFContext::create(E);
Expand Down

0 comments on commit 1fa870b

Please sign in to comment.