https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/218433
SetField and SetThisField are never emitted. >From e6b35b6a9e0e6b29906c96d92a1e6dc61035be5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= <[email protected]> Date: Mon, 24 Aug 2026 16:55:21 +0200 Subject: [PATCH] [clang][bytecode][NFC] Remove unused opcodes SetField and SetThisField are never emitted. --- clang/lib/AST/ByteCode/Interp.h | 31 ------------------------------- clang/lib/AST/ByteCode/Opcodes.td | 5 ----- 2 files changed, 36 deletions(-) diff --git a/clang/lib/AST/ByteCode/Interp.h b/clang/lib/AST/ByteCode/Interp.h index cdcd0b717b779..b203e6f17e0bb 100644 --- a/clang/lib/AST/ByteCode/Interp.h +++ b/clang/lib/AST/ByteCode/Interp.h @@ -1715,22 +1715,6 @@ bool GetFieldPop(InterpState &S, CodePtr OpPC, uint32_t I) { return true; } -template <PrimType Name, class T = typename PrimConv<Name>::T> -bool SetField(InterpState &S, CodePtr OpPC, uint32_t I) { - const T &Value = S.Stk.pop<T>(); - const Pointer &Obj = S.Stk.peek<Pointer>(); - if (!CheckNull(S, OpPC, Obj, CSK_Field)) - return false; - if (!CheckRange(S, OpPC, Obj, CSK_Field)) - return false; - const Pointer &Field = Obj.atField(I); - if (!CheckStore(S, OpPC, Field)) - return false; - Field.initialize(); - Field.deref<T>() = Value; - return true; -} - template <PrimType Name, class T = typename PrimConv<Name>::T> bool GetThisField(InterpState &S, CodePtr OpPC, uint32_t I) { if (S.checkingPotentialConstantExpression()) @@ -1745,21 +1729,6 @@ bool GetThisField(InterpState &S, CodePtr OpPC, uint32_t I) { return true; } -template <PrimType Name, class T = typename PrimConv<Name>::T> -bool SetThisField(InterpState &S, CodePtr OpPC, uint32_t I) { - if (S.checkingPotentialConstantExpression()) - return false; - if (!CheckThis(S, OpPC)) - return false; - const T &Value = S.Stk.pop<T>(); - const Pointer &This = S.Current->getThis(); - const Pointer &Field = This.atField(I); - if (!CheckStore(S, OpPC, Field)) - return false; - Field.deref<T>() = Value; - return true; -} - template <PrimType Name, class T = typename PrimConv<Name>::T> bool GetGlobal(InterpState &S, CodePtr OpPC, uint32_t I) { const Block *B = S.P.getGlobal(I); diff --git a/clang/lib/AST/ByteCode/Opcodes.td b/clang/lib/AST/ByteCode/Opcodes.td index 74d3cc84e06ab..c9a46244bad88 100644 --- a/clang/lib/AST/ByteCode/Opcodes.td +++ b/clang/lib/AST/ByteCode/Opcodes.td @@ -534,11 +534,6 @@ def GetFieldPop : AccessOpcode; // [] -> [Value] def GetThisField : AccessOpcode; -// [Pointer, Value] -> [Pointer] -def SetField : AccessOpcode; -// [Value] -> [] -def SetThisField : AccessOpcode; - // [Value] -> [] def InitThisField : AccessOpcode; def InitThisFieldActivate : AccessOpcode; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
