Changes in directory llvm-poolalloc/Regressions:
2006-02-23.memcpy.ll added (r1.1) --- Log message: reduction from bzip2 --- Diffs of the changes: (+35 -0) 2006-02-23.memcpy.ll | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+) Index: llvm-poolalloc/Regressions/2006-02-23.memcpy.ll diff -c /dev/null llvm-poolalloc/Regressions/2006-02-23.memcpy.ll:1.1 *** /dev/null Thu Feb 23 21:20:14 2006 --- llvm-poolalloc/Regressions/2006-02-23.memcpy.ll Thu Feb 23 21:20:04 2006 *************** *** 0 **** --- 1,35 ---- + ; pointer compression tries to turn the llvm.memcpy into llvm.memcpy_pc + ; this is of course bad. It should materialize the pointers. + target endian = little + target pointersize = 64 + target triple = "alphaev6-unknown-linux-gnu" + deplibs = [ "c", "crtend" ] + %struct.spec_fd_t = type { int, int, int, ubyte* } + %spec_fd = external global [3 x %struct.spec_fd_t] ; <[3 x %struct.spec_fd_t]*> [#uses=2] + + implementation ; Functions: + + declare void %llvm.memcpy(sbyte*, sbyte*, ulong, uint) + + void %main() { + entry: + br bool false, label %no_exit.0.i161, label %endif.0 + + endif.0: ; preds = %entry + ret void + + no_exit.0.i161: ; preds = %entry + %tmp.25.i = getelementptr [3 x %struct.spec_fd_t]* %spec_fd, long 0, int 0, uint 3 ; <ubyte**> [#uses=1] + %tmp.26.i = malloc ubyte, uint 0 ; <ubyte*> [#uses=1] + store ubyte* %tmp.26.i, ubyte** %tmp.25.i + br bool false, label %no_exit.1.i, label %then.4 + + no_exit.1.i: ; preds = %no_exit.0.i161 + %tmp.103.i = load ubyte** getelementptr ([3 x %struct.spec_fd_t]* %spec_fd, long 0, int 0, uint 3) ; <ubyte*> [#uses=1] + %tmp.118.i = cast ubyte* %tmp.103.i to sbyte* ; <sbyte*> [#uses=1] + tail call void %llvm.memcpy( sbyte* null, sbyte* %tmp.118.i, ulong 0, uint 1 ) + ret void + + then.4: ; preds = %no_exit.0.i161 + ret void + } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits