aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/AST/ByteCode/Compiler.cpp
diff options
context:
space:
mode:
authorTimm Baeder <tbaeder@redhat.com>2025-08-19 11:37:32 +0200
committerGitHub <noreply@github.com>2025-08-19 11:37:32 +0200
commitab8b4f6629ee9c4c99c2751aa394f65ee2a4a34a (patch)
treea4d80268f7a7cbaf7c4a0c93639f1ad3b1550b52 /clang/lib/AST/ByteCode/Compiler.cpp
parenta7df02f83c74c7229a09b2f89a51b003075560ab (diff)
downloadllvm-ab8b4f6629ee9c4c99c2751aa394f65ee2a4a34a.zip
llvm-ab8b4f6629ee9c4c99c2751aa394f65ee2a4a34a.tar.gz
llvm-ab8b4f6629ee9c4c99c2751aa394f65ee2a4a34a.tar.bz2
[clang][bytecode][NFC] Replace std::optional<unsigned> with UnsignedO… (#154286)
…rNone
Diffstat (limited to 'clang/lib/AST/ByteCode/Compiler.cpp')
-rw-r--r--clang/lib/AST/ByteCode/Compiler.cpp65
1 files changed, 32 insertions, 33 deletions
diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp
index e9d937f..e3235d3 100644
--- a/clang/lib/AST/ByteCode/Compiler.cpp
+++ b/clang/lib/AST/ByteCode/Compiler.cpp
@@ -256,7 +256,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
// Prepare storage for the result.
if (!Initializing && !SubExprT) {
- std::optional<unsigned> LocalIndex = allocateLocal(SubExpr);
+ UnsignedOrNone LocalIndex = allocateLocal(SubExpr);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, CE))
@@ -609,7 +609,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
// We're creating a complex value here, so we need to
// allocate storage for it.
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateTemporary(CE);
+ UnsignedOrNone LocalIndex = allocateTemporary(CE);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, CE))
@@ -633,7 +633,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
assert(CE->getType()->isAnyComplexType());
assert(SubExpr->getType()->isAnyComplexType());
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateLocal(CE);
+ UnsignedOrNone LocalIndex = allocateLocal(CE);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, CE))
@@ -678,7 +678,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
assert(CE->getType()->isVectorType());
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateLocal(CE);
+ UnsignedOrNone LocalIndex = allocateLocal(CE);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, CE))
@@ -722,7 +722,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
assert(CE->getType()->isVectorType());
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateTemporary(CE);
+ UnsignedOrNone LocalIndex = allocateTemporary(CE);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, CE))
@@ -810,7 +810,7 @@ bool Compiler<Emitter>::VisitImaginaryLiteral(const ImaginaryLiteral *E) {
return true;
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateTemporary(E);
+ UnsignedOrNone LocalIndex = allocateTemporary(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -911,7 +911,7 @@ bool Compiler<Emitter>::VisitBinaryOperator(const BinaryOperator *BO) {
// We need a temporary variable holding our return value.
if (!Initializing) {
- std::optional<unsigned> ResultIndex = this->allocateLocal(BO);
+ UnsignedOrNone ResultIndex = this->allocateLocal(BO);
if (!this->emitGetPtrLocal(*ResultIndex, BO))
return false;
}
@@ -1151,7 +1151,7 @@ template <class Emitter>
bool Compiler<Emitter>::VisitComplexBinOp(const BinaryOperator *E) {
// Prepare storage for result.
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateTemporary(E);
+ UnsignedOrNone LocalIndex = allocateTemporary(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -1210,7 +1210,7 @@ bool Compiler<Emitter>::VisitComplexBinOp(const BinaryOperator *E) {
if (!LHSIsComplex) {
// This is using the RHS type for the fake-complex LHS.
- std::optional<unsigned> LocalIndex = allocateTemporary(RHS);
+ UnsignedOrNone LocalIndex = allocateTemporary(RHS);
if (!LocalIndex)
return false;
LHSOffset = *LocalIndex;
@@ -1385,7 +1385,7 @@ bool Compiler<Emitter>::VisitVectorBinOp(const BinaryOperator *E) {
// Prepare storage for result.
if (!Initializing && !E->isCompoundAssignmentOp()) {
- std::optional<unsigned> LocalIndex = allocateTemporary(E);
+ UnsignedOrNone LocalIndex = allocateTemporary(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -2099,7 +2099,7 @@ bool Compiler<Emitter>::visitCallArgs(ArrayRef<const Expr *> Args,
ExplicitMemberFn);
}
- std::optional<unsigned> LocalIndex =
+ UnsignedOrNone LocalIndex =
allocateLocal(std::move(Source), Arg->getType(),
/*ExtendingDecl=*/nullptr, ScopeKind::Call);
if (!LocalIndex)
@@ -2942,7 +2942,7 @@ bool Compiler<Emitter>::VisitMaterializeTemporaryExpr(
return false;
const Expr *Inner = E->getSubExpr()->skipRValueSubobjectAdjustments();
- if (std::optional<unsigned> LocalIndex =
+ if (UnsignedOrNone LocalIndex =
allocateLocal(E, Inner->getType(), E->getExtendingDecl())) {
InitLinkScope<Emitter> ILS(this, InitLink::Temp(*LocalIndex));
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -3019,7 +3019,7 @@ bool Compiler<Emitter>::VisitCompoundLiteralExpr(const CompoundLiteralExpr *E) {
unsigned LocalIndex;
if (T)
LocalIndex = this->allocateLocalPrimitive(Init, *T, /*IsConst=*/false);
- else if (std::optional<unsigned> MaybeIndex = this->allocateLocal(Init))
+ else if (UnsignedOrNone MaybeIndex = this->allocateLocal(Init))
LocalIndex = *MaybeIndex;
else
return false;
@@ -3196,7 +3196,7 @@ bool Compiler<Emitter>::VisitCXXConstructExpr(const CXXConstructExpr *E) {
if (Ctor->isTrivial())
return true;
assert(!Initializing);
- std::optional<unsigned> LocalIndex = allocateLocal(E);
+ UnsignedOrNone LocalIndex = allocateLocal(E);
if (!LocalIndex)
return false;
@@ -3406,7 +3406,7 @@ bool Compiler<Emitter>::VisitCXXScalarValueInitExpr(
if (const auto *CT = Ty->getAs<ComplexType>()) {
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateLocal(E);
+ UnsignedOrNone LocalIndex = allocateLocal(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -3429,7 +3429,7 @@ bool Compiler<Emitter>::VisitCXXScalarValueInitExpr(
if (const auto *VT = Ty->getAs<VectorType>()) {
// FIXME: Code duplication with the _Complex case above.
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateLocal(E);
+ UnsignedOrNone LocalIndex = allocateLocal(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -4055,8 +4055,7 @@ bool Compiler<Emitter>::VisitExtVectorElementExpr(
// Now the vector variable for the return value.
if (!Initializing) {
- std::optional<unsigned> ResultIndex;
- ResultIndex = allocateLocal(E);
+ UnsignedOrNone ResultIndex = allocateLocal(E);
if (!ResultIndex)
return false;
if (!this->emitGetPtrLocal(*ResultIndex, E))
@@ -4180,7 +4179,7 @@ template <class Emitter> bool Compiler<Emitter>::visit(const Expr *E) {
// Create local variable to hold the return value.
if (!E->isGLValue() && !E->getType()->isAnyComplexType() &&
!canClassify(E->getType())) {
- std::optional<unsigned> LocalIndex = allocateLocal(E);
+ UnsignedOrNone LocalIndex = allocateLocal(E);
if (!LocalIndex)
return false;
@@ -4547,10 +4546,10 @@ unsigned Compiler<Emitter>::allocateLocalPrimitive(
}
template <class Emitter>
-std::optional<unsigned>
-Compiler<Emitter>::allocateLocal(DeclTy &&Src, QualType Ty,
- const ValueDecl *ExtendingDecl, ScopeKind SC,
- bool IsConstexprUnknown) {
+UnsignedOrNone Compiler<Emitter>::allocateLocal(DeclTy &&Src, QualType Ty,
+ const ValueDecl *ExtendingDecl,
+ ScopeKind SC,
+ bool IsConstexprUnknown) {
const ValueDecl *Key = nullptr;
const Expr *Init = nullptr;
bool IsTemporary = false;
@@ -4584,7 +4583,7 @@ Compiler<Emitter>::allocateLocal(DeclTy &&Src, QualType Ty,
}
template <class Emitter>
-std::optional<unsigned> Compiler<Emitter>::allocateTemporary(const Expr *E) {
+UnsignedOrNone Compiler<Emitter>::allocateTemporary(const Expr *E) {
QualType Ty = E->getType();
assert(!Ty->isRecordType());
@@ -4663,7 +4662,7 @@ bool Compiler<Emitter>::visitExpr(const Expr *E, bool DestroyToplevelScope) {
// Expressions with a composite return type.
// For us, that means everything we don't
// have a PrimType for.
- if (std::optional<unsigned> LocalOffset = this->allocateLocal(E)) {
+ if (UnsignedOrNone LocalOffset = this->allocateLocal(E)) {
InitLinkScope<Emitter> ILS(this, InitLink::Temp(*LocalOffset));
if (!this->emitGetPtrLocal(*LocalOffset, E))
return false;
@@ -4860,7 +4859,7 @@ VarCreationState Compiler<Emitter>::visitVarDecl(const VarDecl *VD,
return this->emitSetLocal(*VarT, Offset, VD);
}
} else {
- if (std::optional<unsigned> Offset = this->allocateLocal(
+ if (UnsignedOrNone Offset = this->allocateLocal(
VD, VD->getType(), nullptr, ScopeKind::Block, IsConstexprUnknown)) {
if (!Init)
return true;
@@ -5012,7 +5011,7 @@ bool Compiler<Emitter>::VisitBuiltinCallExpr(const CallExpr *E,
// Non-primitive return type. Prepare storage.
if (!Initializing && !ReturnT && !ReturnType->isVoidType()) {
- std::optional<unsigned> LocalIndex = allocateLocal(E);
+ UnsignedOrNone LocalIndex = allocateLocal(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -5108,7 +5107,7 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) {
// If we need to discard the return value but the function returns its
// value via an RVO pointer, we need to create one such pointer just
// for this call.
- if (std::optional<unsigned> LocalIndex = allocateLocal(E)) {
+ if (UnsignedOrNone LocalIndex = allocateLocal(E)) {
if (!this->emitGetPtrLocal(*LocalIndex, E))
return false;
}
@@ -5116,7 +5115,7 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) {
// We need the result. Prepare a pointer to return or
// dup the current one.
if (!Initializing) {
- if (std::optional<unsigned> LocalIndex = allocateLocal(E)) {
+ if (UnsignedOrNone LocalIndex = allocateLocal(E)) {
if (!this->emitGetPtrLocal(*LocalIndex, E))
return false;
}
@@ -5152,7 +5151,7 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) {
}
bool Devirtualized = false;
- std::optional<unsigned> CalleeOffset;
+ UnsignedOrNone CalleeOffset = std::nullopt;
// Add the (optional, implicit) This pointer.
if (const auto *MC = dyn_cast<CXXMemberCallExpr>(E)) {
if (!FuncDecl && classifyPrim(E->getCallee()) == PT_MemberPtr) {
@@ -6560,7 +6559,7 @@ bool Compiler<Emitter>::VisitComplexUnaryOperator(const UnaryOperator *E) {
OptPrimType ResT = classify(E);
auto prepareResult = [=]() -> bool {
if (!ResT && !Initializing) {
- std::optional<unsigned> LocalIndex = allocateLocal(SubExpr);
+ UnsignedOrNone LocalIndex = allocateLocal(SubExpr);
if (!LocalIndex)
return false;
return this->emitGetPtrLocal(*LocalIndex, E);
@@ -6678,7 +6677,7 @@ bool Compiler<Emitter>::VisitVectorUnaryOperator(const UnaryOperator *E) {
return this->delegate(SubExpr);
if (!Initializing) {
- std::optional<unsigned> LocalIndex = allocateLocal(SubExpr);
+ UnsignedOrNone LocalIndex = allocateLocal(SubExpr);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))
@@ -7282,7 +7281,7 @@ bool Compiler<Emitter>::emitBuiltinBitCast(const CastExpr *E) {
// Prepare storage for the result in case we discard.
if (DiscardResult && !Initializing && !ToT) {
- std::optional<unsigned> LocalIndex = allocateLocal(E);
+ UnsignedOrNone LocalIndex = allocateLocal(E);
if (!LocalIndex)
return false;
if (!this->emitGetPtrLocal(*LocalIndex, E))