[llvm-commits] [llvm] r118906 - /llvm/trunk/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll

Andrew Trick atrick at apple.com
Fri Nov 12 09:57:22 PST 2010


Author: atrick
Date: Fri Nov 12 11:57:22 2010
New Revision: 118906

URL: http://llvm.org/viewvc/llvm-project?rev=118906&view=rev
Log:
Test case for PR8287: SD scheduling time. Fixed in r118904.

Added:
    llvm/trunk/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll

Added: llvm/trunk/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll?rev=118906&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll (added)
+++ llvm/trunk/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll Fri Nov 12 11:57:22 2010
@@ -0,0 +1,31 @@
+; RUN: llc < %s PR8287: SelectionDag scheduling time. 
+; Yes, some front end really produces this code. But that is a
+; separate bug. This is more an example than a real test, because I
+; don't know how give llvm-lit a timeout.
+
+define void @foo([4096 x i8]* %arg1, [4096 x i8]* %arg2) {
+  %buffer = alloca [4096 x i8]
+  %pbuf = alloca [4096 x i8]*
+  store [4096 x i8]* %buffer, [4096 x i8]** %pbuf
+
+  %parg1 = alloca [4096 x i8]*
+  store [4096 x i8]* %arg1, [4096 x i8]** %parg1
+
+  %parg2 = alloca [4096 x i8]*
+  store [4096 x i8]* %arg2, [4096 x i8]** %parg2
+
+  ; The original test case has intermediate blocks.
+  ; Presumably something fills in "buffer".
+
+  %bufferCopy1 = load [4096 x i8]** %pbuf
+  %dataCopy1 = load [4096 x i8]* %bufferCopy1
+  %arg1Copy = load [4096 x i8]** %parg1
+  store [4096 x i8] %dataCopy1, [4096 x i8]* %arg1Copy
+
+  %bufferCopy2 = load [4096 x i8]** %pbuf
+  %dataCopy2 = load [4096 x i8]* %bufferCopy2
+  %arg2Copy = load [4096 x i8]** %parg2
+  store [4096 x i8] %dataCopy2, [4096 x i8]* %arg2Copy
+
+  ret void
+}





More information about the llvm-commits mailing list