Skip to content

Commit af83c88

Browse files
xlaukolanza
authored andcommitted
[CIR][NFC] Remove redundant pointer casts (llvm#1609)
1 parent 0e49567 commit af83c88

File tree

6 files changed

+19
-24
lines changed

6 files changed

+19
-24
lines changed

clang/include/clang/CIR/Dialect/IR/CIROps.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ def PtrStrideOp : CIR_Op<"ptr_stride",
374374
let extraClassDeclaration = [{
375375
// Get type pointed by the base pointer.
376376
mlir::Type getElementTy() {
377-
return mlir::cast<cir::PointerType>(getBase().getType()).getPointee();
377+
return getBase().getType().getPointee();
378378
}
379379
}];
380380
}
@@ -2870,7 +2870,7 @@ def GetMemberOp : CIR_Op<"get_member"> {
28702870

28712871
/// Return the result type.
28722872
cir::PointerType getResultTy() {
2873-
return mlir::cast<cir::PointerType>(getResult().getType());
2873+
return getResult().getType();
28742874
}
28752875
}];
28762876

clang/lib/CIR/Dialect/IR/CIRDialect.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -961,8 +961,8 @@ OpFoldResult cir::ComplexImagOp::fold(FoldAdaptor adaptor) {
961961
//===----------------------------------------------------------------------===//
962962

963963
LogicalResult cir::ComplexRealPtrOp::verify() {
964-
auto resultPointeeTy = mlir::cast<cir::PointerType>(getType()).getPointee();
965-
auto operandPtrTy = mlir::cast<cir::PointerType>(getOperand().getType());
964+
mlir::Type resultPointeeTy = getType().getPointee();
965+
cir::PointerType operandPtrTy = getOperand().getType();
966966
auto operandPointeeTy =
967967
mlir::cast<cir::ComplexType>(operandPtrTy.getPointee());
968968

@@ -976,8 +976,8 @@ LogicalResult cir::ComplexRealPtrOp::verify() {
976976
}
977977

978978
LogicalResult cir::ComplexImagPtrOp::verify() {
979-
auto resultPointeeTy = mlir::cast<cir::PointerType>(getType()).getPointee();
980-
auto operandPtrTy = mlir::cast<cir::PointerType>(getOperand().getType());
979+
mlir::Type resultPointeeTy = getType().getPointee();
980+
cir::PointerType operandPtrTy = getOperand().getType();
981981
auto operandPointeeTy =
982982
mlir::cast<cir::ComplexType>(operandPtrTy.getPointee());
983983

@@ -3658,7 +3658,7 @@ LogicalResult cir::GetMethodOp::verify() {
36583658
auto methodTy = getMethod().getType();
36593659

36603660
// Assume objectTy is !cir.ptr<!T>
3661-
auto objectPtrTy = mlir::cast<cir::PointerType>(getObject().getType());
3661+
cir::PointerType objectPtrTy = getObject().getType();
36623662
auto objectTy = objectPtrTy.getPointee();
36633663

36643664
if (methodTy.getClsTy() != objectTy) {
@@ -3667,8 +3667,7 @@ LogicalResult cir::GetMethodOp::verify() {
36673667
}
36683668

36693669
// Assume methodFuncTy is !cir.func<!Ret (!Args)>
3670-
auto calleePtrTy = mlir::cast<cir::PointerType>(getCallee().getType());
3671-
auto calleeTy = mlir::cast<cir::FuncType>(calleePtrTy.getPointee());
3670+
auto calleeTy = mlir::cast<cir::FuncType>(getCallee().getType().getPointee());
36723671
auto methodFuncTy = methodTy.getMemberFuncTy();
36733672

36743673
// We verify at here that calleeTy is !cir.func<!Ret (!cir.ptr<!void>, !Args)>

clang/lib/CIR/Dialect/Transforms/LifetimeCheck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,7 @@ void LifetimeCheckPass::classifyAndInitTypeCategories(mlir::Value addr,
10281028
if (eltAddr.use_empty())
10291029
return;
10301030

1031-
auto eltTy = mlir::cast<cir::PointerType>(eltAddr.getType()).getPointee();
1031+
auto eltTy = eltAddr.getType().getPointee();
10321032

10331033
// Classify exploded types. Keep alloca original location.
10341034
classifyAndInitTypeCategories(eltAddr, eltTy, loc, ++nestLevel);

clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,9 +1392,7 @@ void LoweringPreparePass::lowerArrayDtor(ArrayDtor op) {
13921392

13931393
auto eltTy = op->getRegion(0).getArgument(0).getType();
13941394
auto arrayLen =
1395-
mlir::cast<cir::ArrayType>(
1396-
mlir::cast<cir::PointerType>(op.getAddr().getType()).getPointee())
1397-
.getSize();
1395+
mlir::cast<cir::ArrayType>(op.getAddr().getType().getPointee()).getSize();
13981396
lowerArrayDtorCtorIntoLoop(builder, op, eltTy, op.getAddr(), arrayLen);
13991397
}
14001398

@@ -1458,9 +1456,7 @@ void LoweringPreparePass::lowerArrayCtor(ArrayCtor op) {
14581456

14591457
auto eltTy = op->getRegion(0).getArgument(0).getType();
14601458
auto arrayLen =
1461-
mlir::cast<cir::ArrayType>(
1462-
mlir::cast<cir::PointerType>(op.getAddr().getType()).getPointee())
1463-
.getSize();
1459+
mlir::cast<cir::ArrayType>(op.getAddr().getType().getPointee()).getSize();
14641460
lowerArrayDtorCtorIntoLoop(builder, op, eltTy, op.getAddr(), arrayLen);
14651461
}
14661462

clang/lib/CIR/Dialect/Transforms/TargetLowering/ItaniumCXXABI.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,9 @@ void ItaniumCXXABI::lowerGetMethod(
324324
llvm_unreachable("ARM method ptr abi NYI");
325325

326326
// Apply the adjustment to the 'this' pointer.
327-
mlir::Type thisVoidPtrTy = cir::PointerType::get(
328-
cir::VoidType::get(rewriter.getContext()),
329-
mlir::cast<cir::PointerType>(op.getObject().getType()).getAddrSpace());
327+
mlir::Type thisVoidPtrTy =
328+
cir::PointerType::get(cir::VoidType::get(rewriter.getContext()),
329+
op.getObject().getType().getAddrSpace());
330330
mlir::Value thisVoidPtr = rewriter.create<cir::CastOp>(
331331
op.getLoc(), thisVoidPtrTy, cir::CastKind::bitcast, loweredObjectPtr);
332332
adjustedThis = rewriter.create<cir::PtrStrideOp>(op.getLoc(), thisVoidPtrTy,
@@ -377,8 +377,7 @@ void ItaniumCXXABI::lowerGetMethod(
377377
auto vtablePtrTy = cir::PointerType::get(
378378
cir::IntType::get(rewriter.getContext(), 8, true));
379379
auto vtablePtrPtrTy = cir::PointerType::get(
380-
vtablePtrTy,
381-
mlir::cast<cir::PointerType>(op.getObject().getType()).getAddrSpace());
380+
vtablePtrTy, op.getObject().getType().getAddrSpace());
382381
auto vtablePtrPtr = rewriter.create<cir::CastOp>(
383382
op.getLoc(), vtablePtrPtrTy, cir::CastKind::bitcast, loweredObjectPtr);
384383
mlir::Value vtablePtr = rewriter.create<cir::LoadOp>(

clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include "mlir/Target/LLVMIR/Export.h"
4646
#include "clang/CIR/Dialect/IR/CIRDialect.h"
4747
#include "clang/CIR/Dialect/IR/CIROpsEnums.h"
48+
#include "clang/CIR/Dialect/IR/CIRTypes.h"
4849
#include "clang/CIR/Dialect/Passes.h"
4950
#include "clang/CIR/LoweringHelpers.h"
5051
#include "clang/CIR/MissingFeatures.h"
@@ -2319,7 +2320,7 @@ mlir::LogicalResult CIRToLLVMComplexImagOpLowering::matchAndRewrite(
23192320
mlir::LogicalResult CIRToLLVMComplexRealPtrOpLowering::matchAndRewrite(
23202321
cir::ComplexRealPtrOp op, OpAdaptor adaptor,
23212322
mlir::ConversionPatternRewriter &rewriter) const {
2322-
auto operandTy = mlir::cast<cir::PointerType>(op.getOperand().getType());
2323+
cir::PointerType operandTy = op.getOperand().getType();
23232324
auto resultLLVMTy = getTypeConverter()->convertType(op.getResult().getType());
23242325
auto elementLLVMTy = getTypeConverter()->convertType(operandTy.getPointee());
23252326

@@ -2334,7 +2335,7 @@ mlir::LogicalResult CIRToLLVMComplexRealPtrOpLowering::matchAndRewrite(
23342335
mlir::LogicalResult CIRToLLVMComplexImagPtrOpLowering::matchAndRewrite(
23352336
cir::ComplexImagPtrOp op, OpAdaptor adaptor,
23362337
mlir::ConversionPatternRewriter &rewriter) const {
2337-
auto operandTy = mlir::cast<cir::PointerType>(op.getOperand().getType());
2338+
cir::PointerType operandTy = op.getOperand().getType();
23382339
auto resultLLVMTy = getTypeConverter()->convertType(op.getResult().getType());
23392340
auto elementLLVMTy = getTypeConverter()->convertType(operandTy.getPointee());
23402341

@@ -3666,7 +3667,7 @@ mlir::LogicalResult CIRToLLVMPtrDiffOpLowering::matchAndRewrite(
36663667
auto diff =
36673668
rewriter.create<mlir::LLVM::SubOp>(op.getLoc(), llvmDstTy, lhs, rhs);
36683669

3669-
auto ptrTy = mlir::cast<cir::PointerType>(op.getLhs().getType());
3670+
cir::PointerType ptrTy = op.getLhs().getType();
36703671
auto typeSize = getTypeSize(ptrTy.getPointee(), *op);
36713672

36723673
// Avoid silly division by 1.

0 commit comments

Comments
 (0)