Index: llvm/trunk/lib/CodeGen/IfConversion.cpp =================================================================== --- llvm/trunk/lib/CodeGen/IfConversion.cpp +++ llvm/trunk/lib/CodeGen/IfConversion.cpp @@ -7,7 +7,8 @@ // //===----------------------------------------------------------------------===// // -// This file implements the machine instruction level if-conversion pass. +// This file implements the machine instruction level if-conversion pass, which +// tries to convert conditional branches into predicated instructions. // //===----------------------------------------------------------------------===// @@ -673,6 +674,9 @@ if (I->isDebugValue()) continue; + // Don't need to check isConvergent(). It's OK to duplicate convergent + // instructions here, because we'll only push convergent operations up the + // CFG -- this can only *remove* control-flow dependencies. if (I->isNotDuplicable()) BBI.CannotBeCopied = true;