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