diff --git a/lib/CodeGen/IfConversion.cpp b/lib/CodeGen/IfConversion.cpp index dad52184b0e..36e6fc727bf 100644 --- a/lib/CodeGen/IfConversion.cpp +++ b/lib/CodeGen/IfConversion.cpp @@ -369,7 +369,7 @@ bool IfConverter::runOnMachineFunction(MachineFunction &MF) { Roots.clear(); BBAnalysis.clear(); - if (MadeChange && !IfCvtBranchFold) { + if (MadeChange && IfCvtBranchFold) { BranchFolder BF(false); BF.OptimizeFunction(MF, TII, MF.getTarget().getRegisterInfo(), diff --git a/test/CodeGen/ARM/ifcvt6-tc.ll b/test/CodeGen/ARM/ifcvt6-tc.ll index 5b28804f380..40b32ccf467 100644 --- a/test/CodeGen/ARM/ifcvt6-tc.ll +++ b/test/CodeGen/ARM/ifcvt6-tc.ll @@ -1,7 +1,7 @@ ; RUN: llc < %s -march=arm -mtriple=arm-apple-darwin | \ ; RUN: grep cmpne | count 1 ; RUN: llc < %s -march=arm -mtriple=arm-apple-darwin | \ -; RUN: grep bhi | count 1 +; RUN: grep bls | count 1 ; Here, tail call wins over eliminating branches. It is 1 fewer instruction ; and removes all stack accesses, so seems like a win. diff --git a/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll b/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll index eb6d59307fc..e3086a332a8 100644 --- a/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll +++ b/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll @@ -12,8 +12,6 @@ define weak arm_aapcs_vfpcc i32 @_ZNKSs7compareERKSs(%"struct.std::basic_string< ; CHECK: _ZNKSs7compareERKSs: ; CHECK: it eq ; CHECK-NEXT: subeq.w r0, r6, r8 -; CHECK-NEXT: %bb -; CHECK-NEXT: %bb1 ; CHECK-NEXT: ldmia.w sp, {r4, r5, r6, r8, r9, pc} entry: %0 = tail call arm_aapcs_vfpcc i32 @_ZNKSs4sizeEv(%"struct.std::basic_string,std::allocator >"* %this) ; [#uses=3] diff --git a/test/CodeGen/Thumb2/thumb2-ifcvt2.ll b/test/CodeGen/Thumb2/thumb2-ifcvt2.ll index 08e6f3844ba..4af492c9308 100644 --- a/test/CodeGen/Thumb2/thumb2-ifcvt2.ll +++ b/test/CodeGen/Thumb2/thumb2-ifcvt2.ll @@ -31,7 +31,7 @@ entry: ; CHECK: CountTree: ; CHECK: it eq ; CHECK: cmpeq -; CHECK: beq +; CHECK: bne ; CHECK: itt eq ; CHECK: moveq ; CHECK: popeq