[clang] b4c6ab6 - [clang][Interp][NFC] Don't use visitLocalInitializer in visitExpr

Timm Bäder via cfe-commits cfe-commits at lists.llvm.org
Sat Feb 10 09:03:20 PST 2024


Author: Timm Bäder
Date: 2024-02-10T18:01:30+01:00
New Revision: b4c6ab600f2ef6f3a842afee569dcf86bce7a43a

URL: https://github.com/llvm/llvm-project/commit/b4c6ab600f2ef6f3a842afee569dcf86bce7a43a
DIFF: https://github.com/llvm/llvm-project/commit/b4c6ab600f2ef6f3a842afee569dcf86bce7a43a.diff

LOG: [clang][Interp][NFC] Don't use visitLocalInitializer in visitExpr

We were unnecessarily getting the pointer of the local variable twice.

Added: 
    

Modified: 
    clang/lib/AST/Interp/ByteCodeExprGen.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/Interp/ByteCodeExprGen.cpp b/clang/lib/AST/Interp/ByteCodeExprGen.cpp
index aaa8ac834cf9fe..6993d751fe58f0 100644
--- a/clang/lib/AST/Interp/ByteCodeExprGen.cpp
+++ b/clang/lib/AST/Interp/ByteCodeExprGen.cpp
@@ -2555,10 +2555,13 @@ bool ByteCodeExprGen<Emitter>::visitExpr(const Expr *E) {
   // For us, that means everything we don't
   // have a PrimType for.
   if (std::optional<unsigned> LocalOffset = this->allocateLocal(E)) {
-    if (!this->visitLocalInitializer(E, *LocalOffset))
+    if (!this->emitGetPtrLocal(*LocalOffset, E))
       return false;
 
-    if (!this->emitGetPtrLocal(*LocalOffset, E))
+    if (!visitInitializer(E))
+      return false;
+
+    if (!this->emitInitPtr(E))
       return false;
     return this->emitRetValue(E);
   }


        


More information about the cfe-commits mailing list