[CodeGen] Remove an unnecessary cast (NFC) (#146380)

E is already of Expr * and shares the same declaration among all these
cases.
This commit is contained in:
Kazu Hirata 2025-06-30 10:11:07 -07:00 committed by GitHub
parent 529508c187
commit efc561c061
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2440,7 +2440,7 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
case CK_BlockPointerToObjCPointerCast: case CK_BlockPointerToObjCPointerCast:
case CK_AnyPointerToBlockPointerCast: case CK_AnyPointerToBlockPointerCast:
case CK_BitCast: { case CK_BitCast: {
Value *Src = Visit(const_cast<Expr*>(E)); Value *Src = Visit(E);
llvm::Type *SrcTy = Src->getType(); llvm::Type *SrcTy = Src->getType();
llvm::Type *DstTy = ConvertType(DestTy); llvm::Type *DstTy = ConvertType(DestTy);
@ -2606,11 +2606,10 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
case CK_AtomicToNonAtomic: case CK_AtomicToNonAtomic:
case CK_NonAtomicToAtomic: case CK_NonAtomicToAtomic:
case CK_UserDefinedConversion: case CK_UserDefinedConversion:
return Visit(const_cast<Expr*>(E)); return Visit(E);
case CK_NoOp: { case CK_NoOp: {
return CE->changesVolatileQualification() ? EmitLoadOfLValue(CE) return CE->changesVolatileQualification() ? EmitLoadOfLValue(CE) : Visit(E);
: Visit(const_cast<Expr *>(E));
} }
case CK_BaseToDerived: { case CK_BaseToDerived: {
@ -2712,10 +2711,10 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
case CK_LValueToRValue: case CK_LValueToRValue:
assert(CGF.getContext().hasSameUnqualifiedType(E->getType(), DestTy)); assert(CGF.getContext().hasSameUnqualifiedType(E->getType(), DestTy));
assert(E->isGLValue() && "lvalue-to-rvalue applied to r-value!"); assert(E->isGLValue() && "lvalue-to-rvalue applied to r-value!");
return Visit(const_cast<Expr*>(E)); return Visit(E);
case CK_IntegralToPointer: { case CK_IntegralToPointer: {
Value *Src = Visit(const_cast<Expr*>(E)); Value *Src = Visit(E);
// First, convert to the correct width so that we control the kind of // First, convert to the correct width so that we control the kind of
// extension. // extension.
@ -2768,7 +2767,7 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
case CK_HLSLAggregateSplatCast: case CK_HLSLAggregateSplatCast:
case CK_VectorSplat: { case CK_VectorSplat: {
llvm::Type *DstTy = ConvertType(DestTy); llvm::Type *DstTy = ConvertType(DestTy);
Value *Elt = Visit(const_cast<Expr *>(E)); Value *Elt = Visit(E);
// Splat the element across to all elements // Splat the element across to all elements
llvm::ElementCount NumElements = llvm::ElementCount NumElements =
cast<llvm::VectorType>(DstTy)->getElementCount(); cast<llvm::VectorType>(DstTy)->getElementCount();
@ -2906,7 +2905,7 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
case CK_HLSLVectorTruncation: { case CK_HLSLVectorTruncation: {
assert((DestTy->isVectorType() || DestTy->isBuiltinType()) && assert((DestTy->isVectorType() || DestTy->isBuiltinType()) &&
"Destination type must be a vector or builtin type."); "Destination type must be a vector or builtin type.");
Value *Vec = Visit(const_cast<Expr *>(E)); Value *Vec = Visit(E);
if (auto *VecTy = DestTy->getAs<VectorType>()) { if (auto *VecTy = DestTy->getAs<VectorType>()) {
SmallVector<int> Mask; SmallVector<int> Mask;
unsigned NumElts = VecTy->getNumElements(); unsigned NumElts = VecTy->getNumElements();