https://github.com/JOE1994 updated https://github.com/llvm/llvm-project/pull/72072
>From b9db2565d3d2d251bde7cd84b704861d5b41bd14 Mon Sep 17 00:00:00 2001 From: JOE1994 <joseph942...@gmail.com> Date: Sun, 12 Nov 2023 20:04:44 -0500 Subject: [PATCH 1/2] [clang][CGExprScalar] Remove no-op ptr-to-ptr bitcast (NFC) Remove bitcast added back in dcd74716f9d18 . --- clang/lib/CodeGen/CGExprScalar.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 1a7a3f97bb779a0..2faab20fc069ee7 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -2227,14 +2227,6 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) { llvm::Value *V = CE->changesVolatileQualification() ? EmitLoadOfLValue(CE) : Visit(const_cast<Expr *>(E)); - if (V) { - // CK_NoOp can model a pointer qualification conversion, which can remove - // an array bound and change the IR type. - // FIXME: Once pointee types are removed from IR, remove this. - llvm::Type *T = ConvertType(DestTy); - if (T != V->getType()) - V = Builder.CreateBitCast(V, T); - } return V; } >From f5e09e6ac45919a6e1fac6e4ee4520bda8aa502b Mon Sep 17 00:00:00 2001 From: JOE1994 <joseph942...@gmail.com> Date: Mon, 13 Nov 2023 10:02:28 -0500 Subject: [PATCH 2/2] Return immediately instead of storing retval to intermediate variable --- clang/lib/CodeGen/CGExprScalar.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 2faab20fc069ee7..641a984f2f1a0ec 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -2224,10 +2224,8 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) { return Visit(const_cast<Expr*>(E)); case CK_NoOp: { - llvm::Value *V = CE->changesVolatileQualification() - ? EmitLoadOfLValue(CE) - : Visit(const_cast<Expr *>(E)); - return V; + return CE->changesVolatileQualification() ? EmitLoadOfLValue(CE) + : Visit(const_cast<Expr *>(E)); } case CK_BaseToDerived: { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits