aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarren Ristow <warren.ristow@sony.com>2022-07-25 10:24:43 -0700
committerWarren Ristow <warren.ristow@sony.com>2022-07-25 10:24:43 -0700
commit3bbd380a5b51db23e829f8ce6b948e7b9d451f15 (patch)
tree3808253cda31678e7c681353bb73d2ce424d773e
parentfc93ba061aa05a428057e7a7753128f27af0dd41 (diff)
downloadllvm-3bbd380a5b51db23e829f8ce6b948e7b9d451f15.zip
llvm-3bbd380a5b51db23e829f8ce6b948e7b9d451f15.tar.gz
llvm-3bbd380a5b51db23e829f8ce6b948e7b9d451f15.tar.bz2
[Reassociate][NFC] Use an appropriate dyn_cast for BinaryOperator
In D129523, it was noted that there is are some questionable naked casts from Instruction to BinaryOperator, which could be addressed by doing a dyn_cast directly to BinaryOperator, avoiding the need for the later cast. This cleans up that casting. Reviewed By: nikic, spatel, RKSimon Differential Revision: https://reviews.llvm.org/D130448
-rw-r--r--llvm/lib/Transforms/Scalar/Reassociate.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/Scalar/Reassociate.cpp b/llvm/lib/Transforms/Scalar/Reassociate.cpp
index 53575f5..cd2ce8c 100644
--- a/llvm/lib/Transforms/Scalar/Reassociate.cpp
+++ b/llvm/lib/Transforms/Scalar/Reassociate.cpp
@@ -154,20 +154,20 @@ static bool hasFPAssociativeFlags(Instruction *I) {
/// Return true if V is an instruction of the specified opcode and if it
/// only has one use.
static BinaryOperator *isReassociableOp(Value *V, unsigned Opcode) {
- auto *I = dyn_cast<Instruction>(V);
- if (I && I->hasOneUse() && I->getOpcode() == Opcode)
- if (!isa<FPMathOperator>(I) || hasFPAssociativeFlags(I))
- return cast<BinaryOperator>(I);
+ auto *BO = dyn_cast<BinaryOperator>(V);
+ if (BO && BO->hasOneUse() && BO->getOpcode() == Opcode)
+ if (!isa<FPMathOperator>(BO) || hasFPAssociativeFlags(BO))
+ return BO;
return nullptr;
}
static BinaryOperator *isReassociableOp(Value *V, unsigned Opcode1,
unsigned Opcode2) {
- auto *I = dyn_cast<Instruction>(V);
- if (I && I->hasOneUse() &&
- (I->getOpcode() == Opcode1 || I->getOpcode() == Opcode2))
- if (!isa<FPMathOperator>(I) || hasFPAssociativeFlags(I))
- return cast<BinaryOperator>(I);
+ auto *BO = dyn_cast<BinaryOperator>(V);
+ if (BO && BO->hasOneUse() &&
+ (BO->getOpcode() == Opcode1 || BO->getOpcode() == Opcode2))
+ if (!isa<FPMathOperator>(BO) || hasFPAssociativeFlags(BO))
+ return BO;
return nullptr;
}