[clang] 5b5d81c - [clang][bytecode] Skip `emitInitScope` for `EvalEmitter` (#228092)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 1 21:54:50 PDT 2026
Author: Timm Baeder
Date: 2026-10-02T06:54:43+02:00
New Revision: 5b5d81ca4a95f250488d9d164697a98096578e7f
URL: https://github.com/llvm/llvm-project/commit/5b5d81ca4a95f250488d9d164697a98096578e7f
DIFF: https://github.com/llvm/llvm-project/commit/5b5d81ca4a95f250488d9d164697a98096578e7f.diff
LOG: [clang][bytecode] Skip `emitInitScope` for `EvalEmitter` (#228092)
The opcode ultimately doesn't do anything in `EvalEmitter`, so try to
skip it as early as possible.
Added:
Modified:
clang/lib/AST/ByteCode/Compiler.cpp
Removed:
################################################################################
diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp
index 6afb424936202..42859942d2925 100644
--- a/clang/lib/AST/ByteCode/Compiler.cpp
+++ b/clang/lib/AST/ByteCode/Compiler.cpp
@@ -148,7 +148,9 @@ template <class Emitter> class LocalScope : public VariableScope<Emitter> {
if (!Idx) {
Idx = static_cast<unsigned>(this->Ctx->Descriptors.size());
this->Ctx->Descriptors.emplace_back();
- this->Ctx->emitInitScope(*Idx, {});
+
+ if constexpr (!std::is_same_v<Emitter, EvalEmitter>)
+ this->Ctx->emitInitScope(*Idx, {});
}
Local.EnabledByDefault = this->LocalsAlwaysEnabled;
@@ -164,7 +166,8 @@ template <class Emitter> class LocalScope : public VariableScope<Emitter> {
if (!Idx) {
Idx = static_cast<unsigned>(this->Ctx->Descriptors.size());
this->Ctx->Descriptors.emplace_back();
- this->Ctx->emitInitScope(*Idx, {});
+ if constexpr (!std::is_same_v<Emitter, EvalEmitter>)
+ this->Ctx->emitInitScope(*Idx, {});
}
}
More information about the cfe-commits
mailing list