From 5092661d56a9058d385f605ad428fdb2e9d0942e Mon Sep 17 00:00:00 2001 From: Ramkumar Ramachandra Date: Sun, 3 Aug 2025 19:39:25 +0100 Subject: [PATCH] [IR] Improve code in isIdenticalToWhenDefined (NFC) Prefer llvm::equal() over std::equal(). --- llvm/lib/IR/Instruction.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/llvm/lib/IR/Instruction.cpp b/llvm/lib/IR/Instruction.cpp index 763cc1832b794..b7cd12ac9691e 100644 --- a/llvm/lib/IR/Instruction.cpp +++ b/llvm/lib/IR/Instruction.cpp @@ -942,14 +942,13 @@ bool Instruction::isIdenticalToWhenDefined(const Instruction *I, // We have two instructions of identical opcode and #operands. Check to see // if all operands are the same. - if (!std::equal(op_begin(), op_end(), I->op_begin())) + if (!equal(operands(), I->operands())) return false; // WARNING: this logic must be kept in sync with EliminateDuplicatePHINodes()! - if (const PHINode *thisPHI = dyn_cast(this)) { - const PHINode *otherPHI = cast(I); - return std::equal(thisPHI->block_begin(), thisPHI->block_end(), - otherPHI->block_begin()); + if (const PHINode *Phi = dyn_cast(this)) { + const PHINode *OtherPhi = cast(I); + return equal(Phi->blocks(), OtherPhi->blocks()); } return this->hasSameSpecialState(I, /*IgnoreAlignment=*/false,