diff options
author | Warren Ristow <warren.ristow@sony.com> | 2022-07-25 10:24:43 -0700 |
---|---|---|
committer | Warren Ristow <warren.ristow@sony.com> | 2022-07-25 10:24:43 -0700 |
commit | 3bbd380a5b51db23e829f8ce6b948e7b9d451f15 (patch) | |
tree | 3808253cda31678e7c681353bb73d2ce424d773e | |
parent | fc93ba061aa05a428057e7a7753128f27af0dd41 (diff) | |
download | llvm-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.cpp | 18 |
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; } |