[llvm-commits] [llvm] r120325 - in /llvm/trunk: lib/Transforms/Scalar/DeadStoreElimination.cpp test/Transforms/DeadStoreElimination/simple.ll

Nick Lewycky nicholas at mxc.ca
Tue Nov 30 01:37:45 PST 2010


Chris Lattner wrote:
> Author: lattner
> Date: Mon Nov 29 15:59:31 2010
> New Revision: 120325
>
> URL: http://llvm.org/viewvc/llvm-project?rev=120325&view=rev
> Log:
> fix PR8677, patch by Jakub Staszak!
>
> Modified:
>      llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp
>      llvm/trunk/test/Transforms/DeadStoreElimination/simple.ll
>
> Modified: llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp?rev=120325&r1=120324&r2=120325&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp Mon Nov 29 15:59:31 2010
> @@ -235,8 +235,10 @@
>                                                   &BB);
>         }
>
> -      // If not a definite must-alias dependency, ignore it.
> -      if (!InstDep.isDef())
> +      // If not a definite must-alias store dependency, ignore it.  If this is a
> +      // load from the same pointer, we don't want to transform load+store into
> +      // a noop.
> +      if (!InstDep.isDef() || !isa<StoreInst>(InstDep.getInst()))
>           continue;
>       }
>
>
> Modified: llvm/trunk/test/Transforms/DeadStoreElimination/simple.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/DeadStoreElimination/simple.ll?rev=120325&r1=120324&r2=120325&view=diff
> ==============================================================================
> --- llvm/trunk/test/Transforms/DeadStoreElimination/simple.ll (original)
> +++ llvm/trunk/test/Transforms/DeadStoreElimination/simple.ll Mon Nov 29 15:59:31 2010
> @@ -20,3 +20,17 @@
>   ; CHECK: @test2
>   ; CHECK-NEXT: store i32 20
>   }
> +
> +
> +; PR8677
> + at g = global i32 1
> +
> +define i32 @test3(i32* %g_addr) nounwind {
> +; CHECK: @test3
> +; CHEcK: load i32* %g_addr

Typo: cheCk :)

Nick

> +  %g_value = load i32* %g_addr, align 4
> +  store i32 -1, i32* @g, align 4
> +  store i32 %g_value, i32* %g_addr, align 4
> +  %tmp3 = load i32* @g, align 4
> +  ret i32 %tmp3
> +}
>
>
> _______________________________________________
> 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