[llvm-commits] [llvm] r130206 - in /llvm/trunk: lib/Transforms/Scalar/GVN.cpp test/Transforms/GVN/rle.ll test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
Roman Divacky
rdivacky at freebsd.org
Tue Apr 26 12:14:01 PDT 2011
this is causing some strange regressions here (with greedy regalloc but
otherwise vanilla llvm):
before:
cmpb $69, 41(%esp)
after:
movl %eax, %ecx
movb %ch, %cl
cmpb $69, %cl
and some more
you can get the before/after asm files at:
http://lev.vlakno.cz/~rdivacky/boot2.after.s
http://lev.vlakno.cz/~rdivacky/boot2.before.s
On Tue, Apr 26, 2011 at 05:41:02PM -0000, Chris Lattner wrote:
> Author: lattner
> Date: Tue Apr 26 12:41:02 2011
> New Revision: 130206
>
> URL: http://llvm.org/viewvc/llvm-project?rev=130206&view=rev
> Log:
> Improve the bail-out predicate to really only kick in when phi
> translation fails. We were bailing out in some cases that would
> cause us to miss GVN'ing some non-local cases away.
>
> Modified:
> llvm/trunk/lib/Transforms/Scalar/GVN.cpp
> llvm/trunk/test/Transforms/GVN/rle.ll
> llvm/trunk/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
>
> Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=130206&r1=130205&r2=130206&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Tue Apr 26 12:41:02 2011
> @@ -1103,7 +1103,8 @@
>
> // If we had a phi translation failure, we'll have a single entry which is a
> // clobber in the current block. Reject this early.
> - if (Deps.size() == 1 && Deps[0].getResult().isClobber()) {
> + if (Deps.size() == 1 && Deps[0].getResult().isClobber() &&
> + Deps[0].getResult().getInst()->getParent() == LI->getParent()) {
> DEBUG(
> dbgs() << "GVN: non-local load ";
> WriteAsOperand(dbgs(), LI);
>
> Modified: llvm/trunk/test/Transforms/GVN/rle.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/rle.ll?rev=130206&r1=130205&r2=130206&view=diff
> ==============================================================================
> --- llvm/trunk/test/Transforms/GVN/rle.ll (original)
> +++ llvm/trunk/test/Transforms/GVN/rle.ll Tue Apr 26 12:41:02 2011
> @@ -570,4 +570,27 @@
> }
>
>
> +; Cross block partial alias case.
> +define i32 @load_load_partial_alias_cross_block(i8* %P) nounwind ssp {
> +entry:
> + %xx = bitcast i8* %P to i32*
> + %x1 = load i32* %xx, align 4
> + %cmp = icmp eq i32 %x1, 127
> + br i1 %cmp, label %land.lhs.true, label %if.end
> +
> +land.lhs.true: ; preds = %entry
> + %arrayidx4 = getelementptr inbounds i8* %P, i64 1
> + %tmp5 = load i8* %arrayidx4, align 1
> + %conv6 = zext i8 %tmp5 to i32
> + ret i32 %conv6
> +
> +if.end:
> + ret i32 52
> +; CHECK: @load_load_partial_alias_cross_block
> +; CHECK: land.lhs.true:
> +; CHECK-NOT: load i8
> +; CHECK: ret i32 %conv6
> +}
> +
> +
>
>
> Modified: llvm/trunk/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll?rev=130206&r1=130205&r2=130206&view=diff
> ==============================================================================
> --- llvm/trunk/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll (original)
> +++ llvm/trunk/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll Tue Apr 26 12:41:02 2011
> @@ -1,7 +1,5 @@
> -; RUN: opt < %s -gvn -simplifycfg \
> -; RUN: -disable-output
> +; RUN: opt < %s -gvn -simplifycfg -disable-output
> ; PR867
> -; END.
>
> target datalayout = "E-p:32:32"
> target triple = "powerpc-apple-darwin8"
>
>
> _______________________________________________
> 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