[llvm-commits] [llvm] r84868 - in /llvm/trunk: lib/Target/ARM/ARMTargetMachine.cpp test/CodeGen/ARM/ifcvt5.ll
Evan Cheng
evan.cheng at apple.com
Thu Oct 22 10:30:22 PDT 2009
Yes sorry. I was going to revert it myself. The problem is post-regalloc scheduling can change register allocation. That doesn't work for diamond shape if-conversion when two instructions with mutually exclusive predicates must target the same register.
Evan
On Oct 22, 2009, at 9:52 AM, Bob Wilson wrote:
> Author: bwilson
> Date: Thu Oct 22 11:52:21 2009
> New Revision: 84868
>
> URL: http://llvm.org/viewvc/llvm-project?rev=84868&view=rev
> Log:
> Revert 84843. Evan, this was breaking some of the if-conversion tests.
>
> Modified:
> llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
> llvm/trunk/test/CodeGen/ARM/ifcvt5.ll
>
> Modified: llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp?rev=84868&r1=84867&r2=84868&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp Thu Oct 22 11:52:21 2009
> @@ -103,16 +103,18 @@
> bool ARMBaseTargetMachine::addPreSched2(PassManagerBase &PM,
> CodeGenOpt::Level OptLevel) {
> // FIXME: temporarily disabling load / store optimization pass for Thumb1.
> - if (OptLevel != CodeGenOpt::None && !Subtarget.isThumb1Only()) {
> + if (OptLevel != CodeGenOpt::None && !Subtarget.isThumb1Only())
> PM.add(createARMLoadStoreOptimizationPass());
> - PM.add(createIfConverterPass());
> - }
>
> return true;
> }
>
> bool ARMBaseTargetMachine::addPreEmitPass(PassManagerBase &PM,
> CodeGenOpt::Level OptLevel) {
> + // FIXME: temporarily disabling load / store optimization pass for Thumb1.
> + if (OptLevel != CodeGenOpt::None && !Subtarget.isThumb1Only())
> + PM.add(createIfConverterPass());
> +
> if (Subtarget.isThumb2()) {
> PM.add(createThumb2ITBlockPass());
> PM.add(createThumb2SizeReductionPass());
>
> Modified: llvm/trunk/test/CodeGen/ARM/ifcvt5.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/ifcvt5.ll?rev=84868&r1=84867&r2=84868&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/ifcvt5.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/ifcvt5.ll Thu Oct 22 11:52:21 2009
> @@ -11,8 +11,7 @@
>
> define void @t1(i32 %a, i32 %b) {
> ; CHECK: t1:
> -; CHECK: movge
> -; CHECK: blge _foo
> +; CHECK: ldmltfd sp!, {r7, pc}
> entry:
> %tmp1 = icmp sgt i32 %a, 10 ; <i1> [#uses=1]
> br i1 %tmp1, label %cond_true, label %UnifiedReturnBlock
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list