[llvm] r270944 - ValueMapper: fix typo in minor optimization on constant mapping (NFC)

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Thu May 26 17:32:13 PDT 2016

Author: mehdi_amini
Date: Thu May 26 19:32:12 2016
New Revision: 270944

URL: http://llvm.org/viewvc/llvm-project?rev=270944&view=rev
ValueMapper: fix typo in minor optimization on constant mapping (NFC)

If every operands of a constant are mapping to themselves, and the
type does not change, we have an early exit as acknowledged in the

  // Otherwise, we have some other constant to remap.  Start by checking to see
  // if all operands have an identity remapping.

However instead of checking for identity the code was checking if the
operands were mapped to the constant itself, which is rarely true.

As a consequence, the coverage report showed that the early exit was
never taken.


Modified: llvm/trunk/lib/Transforms/Utils/ValueMapper.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/ValueMapper.cpp?rev=270944&r1=270943&r2=270944&view=diff
--- llvm/trunk/lib/Transforms/Utils/ValueMapper.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/ValueMapper.cpp Thu May 26 19:32:12 2016
@@ -436,7 +436,8 @@ Value *Mapper::mapValue(const Value *V)
   for (; OpNo != NumOperands; ++OpNo) {
     Value *Op = C->getOperand(OpNo);
     Mapped = mapValue(Op);
-    if (Mapped != C) break;
+    if (Mapped != Op)
+      break;
   // See if the type mapper wants to remap the type as well.

More information about the llvm-commits mailing list