From f00f68ad0dc24206ef176b71465c4f30c44708a4 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 19 May 2006 21:01:38 +0000 Subject: [PATCH] Add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28402 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/README.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 92fc8d036dd..24fb24d3867 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -220,3 +220,22 @@ Doing so could allow SROA of the destination pointers. See also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17687 //===---------------------------------------------------------------------===// + +Scalar Repl cannot currently promote this testcase to 'ret long cst': + + %struct.X = type { int, int } + %struct.Y = type { %struct.X } +ulong %bar() { + %retval = alloca %struct.Y, align 8 ; <%struct.Y*> [#uses=3] + %tmp12 = getelementptr %struct.Y* %retval, int 0, uint 0, uint 0 ; [#uses=1] + store int 0, int* %tmp12 + %tmp15 = getelementptr %struct.Y* %retval, int 0, uint 0, uint 1 ; [#uses=1] + store int 1, int* %tmp15 + %retval = cast %struct.Y* %retval to ulong* ; [#uses=1] + %retval = load ulong* %retval ; [#uses=1] + ret ulong %retval +} + +it should be extended to do so. + +//===---------------------------------------------------------------------===//