[clang] [clang][bytecode] Remove InterpFrame::IsBottom flag (PR #159279)
Timm Baeder via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 17 01:09:05 PDT 2025
https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/159279
The bottom frame is the one without a parent. No need to save that information separately.
>From 89660bb96ee87cfd7634765a44c220b85702f201 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timm=20B=C3=A4der?= <tbaeder at redhat.com>
Date: Wed, 17 Sep 2025 10:08:05 +0200
Subject: [PATCH] [clang][bytecode] Remove InterpFrame::IsBottom flag
The bottom frame is the one without a parent. No need to save that
information separately.
---
clang/lib/AST/ByteCode/InterpFrame.cpp | 4 ++--
clang/lib/AST/ByteCode/InterpFrame.h | 3 +--
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/clang/lib/AST/ByteCode/InterpFrame.cpp b/clang/lib/AST/ByteCode/InterpFrame.cpp
index b9dc2aed23113..c411a371282ef 100644
--- a/clang/lib/AST/ByteCode/InterpFrame.cpp
+++ b/clang/lib/AST/ByteCode/InterpFrame.cpp
@@ -24,13 +24,13 @@ using namespace clang::interp;
InterpFrame::InterpFrame(InterpState &S)
: Caller(nullptr), S(S), Depth(0), Func(nullptr), RetPC(CodePtr()),
- ArgSize(0), Args(nullptr), FrameOffset(0), IsBottom(true) {}
+ ArgSize(0), Args(nullptr), FrameOffset(0) {}
InterpFrame::InterpFrame(InterpState &S, const Function *Func,
InterpFrame *Caller, CodePtr RetPC, unsigned ArgSize)
: Caller(Caller), S(S), Depth(Caller ? Caller->Depth + 1 : 0), Func(Func),
RetPC(RetPC), ArgSize(ArgSize), Args(static_cast<char *>(S.Stk.top())),
- FrameOffset(S.Stk.size()), IsBottom(!Caller) {
+ FrameOffset(S.Stk.size()) {
if (!Func)
return;
diff --git a/clang/lib/AST/ByteCode/InterpFrame.h b/clang/lib/AST/ByteCode/InterpFrame.h
index cf4d27d341e91..129851155bd86 100644
--- a/clang/lib/AST/ByteCode/InterpFrame.h
+++ b/clang/lib/AST/ByteCode/InterpFrame.h
@@ -129,7 +129,7 @@ class InterpFrame final : public Frame {
bool isStdFunction() const;
- bool isBottomFrame() const { return IsBottom; }
+ bool isBottomFrame() const { return !Caller; }
void dump() const { dump(llvm::errs(), 0); }
void dump(llvm::raw_ostream &OS, unsigned Indent = 0) const;
@@ -179,7 +179,6 @@ class InterpFrame final : public Frame {
const size_t FrameOffset;
/// Mapping from arg offsets to their argument blocks.
llvm::DenseMap<unsigned, std::unique_ptr<char[]>> Params;
- bool IsBottom = false;
};
} // namespace interp
More information about the cfe-commits
mailing list