[PATCH] D77404: [AssumeBundles] preserve knowledge in DSE

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 25 07:17:18 PDT 2020



> On Apr 14, 2020, at 12:13, Tyker via Phabricator via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> This revision was automatically updated to reflect the committed changes.
> Closed by commit rG086de7673e3d: [AssumeBundles] preserve knowledge in DSE (authored by Tyker).
> 
> Repository:
>  rG LLVM Github Monorepo
> 
> CHANGES SINCE LAST ACTION
>  https://reviews.llvm.org/D77404/new/
> 
> https://reviews.llvm.org/D77404
> 
> Files:
>  llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
>  llvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
> 
> 
> Index: llvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
> ===================================================================
> --- /dev/null
> +++ llvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
> @@ -0,0 +1,17 @@
> +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
> +; RUN: opt < %s -aa-pipeline=basic-aa -passes=dse -enable-dse-memoryssa -enable-knowledge-retention -S | FileCheck %s
> +
> +target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
> +
> +define void @test1(i32* %Q, i32* %P) {
> +; CHECK-LABEL: @test1(
> +; CHECK-NEXT:    call void @llvm.assume(i1 true) [ "dereferenceable"(i32* [[Q:%.*]], i64 4), "nonnull"(i32* [[Q]]) ]
> +; CHECK-NEXT:    call void @llvm.assume(i1 true) [ "dereferenceable"(i32* [[P:%.*]], i64 4), "nonnull"(i32* [[P]]) ]
> +; CHECK-NEXT:    store i32 0, i32* [[P]]
> +; CHECK-NEXT:    ret void
> +;
> +  %DEAD = load i32, i32* %Q
> +  store i32 %DEAD, i32* %P
> +  store i32 0, i32* %P
> +  ret void
> +}

It would be good to also add a test without -enable-dse-memoryssa  (Which is the current default).

Cheers,
Florian



More information about the llvm-commits mailing list