On Jan 28, 2008, at 10:40 PM, Owen Anderson wrote:

> Author: resistor
> Date: Tue Jan 29 00:40:32 2008
> New Revision: 46497
>
> URL: http://llvm.org/viewvc/llvm-project?rev=46497&view=rev
> Log:
> Add a testcase for eliminating memcpy's at the end of functions.   
> Forgot to commit this with my last commit.

Nice, this is definitely progress.  However, 'opt -dse' reduces this  
testcase down to:

define void @_ada_placeholder() nounwind  {
entry:
        %an_interval = alloca %struct.placeholder__an_interval___PAD            
; < 
%struct.placeholder__an_interval___PAD*> [#uses=3]
        %tmp34 = bitcast %struct.placeholder__an_interval___PAD* %an_interval  
to %struct.placeholder__T5b*            ; <%struct.placeholder__T5b*> [#uses=1]
        %tmp5 = getelementptr %struct.placeholder__an_interval___PAD*  
%an_interval, i32 0, i32 0, i32 0               ; <i32*> [#uses=1]
        store i32 1, i32* %tmp5, align 8
        %tmp10 = getelementptr %struct.placeholder__T5b* %tmp34, i32 0, i32  
1, i32 0                ; <i32*> [#uses=1]
        store i32 1, i32* %tmp10, align 4
        %tmp183185 = bitcast %struct.placeholder__an_interval___PAD*  
%an_interval to i8*             ; <i8*> [#uses=0]
        ret void
}

Why is DSE leaving around dead stores to the stack? :)  Also, it seems  
that DSE would eliminate the trivially dead bitcast at the end as well.

-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to