1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00

I already merged partial-overwrite.ll -> PartialStore.ll

Merge context-sensitive.ll -> simple.ll and upgrade it.

llvm-svn: 120374
This commit is contained in:
Chris Lattner 2010-11-30 01:05:07 +00:00
parent 496eacefab
commit 8e2909e4d8
3 changed files with 20 additions and 29 deletions

View File

@ -1,15 +0,0 @@
; RUN: opt < %s -basicaa -dse -S | not grep DEAD
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"
declare void @ext()
define i32* @caller() {
%P = malloc i32 ; <i32*> [#uses=4]
%DEAD = load i32* %P ; <i32> [#uses=1]
%DEAD2 = add i32 %DEAD, 1 ; <i32> [#uses=1]
store i32 %DEAD2, i32* %P
call void @ext( )
store i32 0, i32* %P
ret i32* %P
}

View File

@ -1,14 +0,0 @@
; RUN: opt -dse -S %s | FileCheck %s
; Note that we could do better by merging the two stores into one.
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
target triple = "x86_64-unknown-linux-gnu"
define void @test(i32* %P) {
store i32 0, i32* %P
; CHECK: store i32
%Q = bitcast i32* %P to i16*
store i16 1, i16* %Q
; CHECK: store i16
ret void
}

View File

@ -145,3 +145,23 @@ define void @test12({ i32, i32 }* %x) nounwind {
; CHECK: ret void
}
; %P doesn't escape, the DEAD instructions should be removed.
declare void @test13f()
define i32* @test13() {
%p = tail call i8* @malloc(i32 4)
%P = bitcast i8* %p to i32*
%DEAD = load i32* %P
%DEAD2 = add i32 %DEAD, 1
store i32 %DEAD2, i32* %P
call void @test13f( )
store i32 0, i32* %P
ret i32* %P
; CHECK: @test13()
; CHECK-NEXT: malloc
; CHECK-NEXT: bitcast
; CHECK-NEXT: call void
}
declare noalias i8* @malloc(i32)