Index: lib/CodeGen/IfConversion.cpp =================================================================== --- lib/CodeGen/IfConversion.cpp +++ lib/CodeGen/IfConversion.cpp @@ -359,8 +359,7 @@ std::vector> Tokens; MadeChange = false; - unsigned NumIfCvts = NumSimple + NumSimpleFalse + NumTriangle + - NumTriangleRev + NumTriangleFalse + NumTriangleFRev + NumDiamonds; + unsigned NumIfCvts = 0; while (IfCvtLimit == -1 || (int)NumIfCvts < IfCvtLimit) { // Do an initial analysis for each basic block and find all the potential // candidates to perform if-conversion. @@ -464,8 +463,9 @@ Change |= RetVal; - NumIfCvts = NumSimple + NumSimpleFalse + NumTriangle + NumTriangleRev + - NumTriangleFalse + NumTriangleFRev + NumDiamonds; + if (RetVal) + ++NumIfCvts; + if (IfCvtLimit != -1 && (int)NumIfCvts >= IfCvtLimit) break; }