[Reassociate] Try to bail out early when canonicalizing.

This commit rearranges the checks to avoid calls to getRank()
when not needed (e.g. when RHS == LHS).

llvm-svn: 310237
This commit is contained in:
Davide Italiano 2017-08-07 01:49:09 +00:00
parent 305d3164f2
commit a5cdc22e70
1 changed files with 2 additions and 6 deletions

View File

@ -207,13 +207,9 @@ void ReassociatePass::canonicalizeOperands(Instruction *I) {
Value *LHS = I->getOperand(0);
Value *RHS = I->getOperand(1);
unsigned LHSRank = getRank(LHS);
unsigned RHSRank = getRank(RHS);
if (isa<Constant>(RHS))
if (LHS == RHS || isa<Constant>(RHS))
return;
if (isa<Constant>(LHS) || RHSRank < LHSRank)
if (isa<Constant>(LHS) || getRank(RHS) < getRank(LHS))
cast<BinaryOperator>(I)->swapOperands();
}