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?= <[email protected]> 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 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
