[llvm-commits] [llvm] r117632 - /llvm/trunk/test/Analysis/TypeBasedAliasAnalysis/dse.ll

Dan Gohman gohman at apple.com
Thu Oct 28 17:54:02 PDT 2010


Author: djg
Date: Thu Oct 28 19:54:02 2010
New Revision: 117632

URL: http://llvm.org/viewvc/llvm-project?rev=117632&view=rev
Log:
Add a basic testcase for TBAA-aware DSE.

Added:
    llvm/trunk/test/Analysis/TypeBasedAliasAnalysis/dse.ll

Added: llvm/trunk/test/Analysis/TypeBasedAliasAnalysis/dse.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/TypeBasedAliasAnalysis/dse.ll?rev=117632&view=auto
==============================================================================
--- llvm/trunk/test/Analysis/TypeBasedAliasAnalysis/dse.ll (added)
+++ llvm/trunk/test/Analysis/TypeBasedAliasAnalysis/dse.ll Thu Oct 28 19:54:02 2010
@@ -0,0 +1,43 @@
+; RUN: opt < %s -enable-tbaa -tbaa -basicaa -dse -S | FileCheck %s
+
+; DSE should make use of TBAA.
+
+; CHECK: @test0_yes
+; CHECK-NEXT: load i8* %b
+; CHECK-NEXT: store i8 1, i8* %a
+; CHECK-NEXT: ret i8 %y
+define i8 @test0_yes(i8* %a, i8* %b) nounwind {
+  store i8 0, i8* %a, !tbaa !1
+  %y = load i8* %b, !tbaa !2
+  store i8 1, i8* %a, !tbaa !1
+  ret i8 %y
+}
+
+; CHECK: @test0_no
+; CHECK-NEXT: store i8 0, i8* %a
+; CHECK-NEXT: load i8* %b
+; CHECK-NEXT: store i8 1, i8* %a
+; CHECK-NEXT: ret i8 %y
+define i8 @test0_no(i8* %a, i8* %b) nounwind {
+  store i8 0, i8* %a, !tbaa !3
+  %y = load i8* %b, !tbaa !4
+  store i8 1, i8* %a, !tbaa !3
+  ret i8 %y
+}
+
+; Root note.
+!0 = metadata !{ }
+; Some type.
+!1 = metadata !{ metadata !"foo", metadata !0 }
+; Some other non-aliasing type.
+!2 = metadata !{ metadata !"bar", metadata !0 }
+
+; Some type.
+!3 = metadata !{ metadata !"foo", metadata !0 }
+; Some type in a different type system.
+!4 = metadata !{ metadata !"bar", metadata !"different" }
+
+; Invariant memory.
+!5 = metadata !{ metadata !"qux", metadata !0, i1 1 }
+; Not invariant memory.
+!6 = metadata !{ metadata !"qux", metadata !0, i1 0 }





More information about the llvm-commits mailing list