Changes in directory llvm/test/Regression/Transforms/Inline:
dynamic_alloca_test.ll added (r1.1) --- Log message: New testcase that functions with dynamic allocas can be inlined, and are inlined correctly. --- Diffs of the changes: (+28 -0) dynamic_alloca_test.ll | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+) Index: llvm/test/Regression/Transforms/Inline/dynamic_alloca_test.ll diff -c /dev/null llvm/test/Regression/Transforms/Inline/dynamic_alloca_test.ll:1.1 *** /dev/null Fri Jan 13 13:35:15 2006 --- llvm/test/Regression/Transforms/Inline/dynamic_alloca_test.ll Fri Jan 13 13:35:05 2006 *************** *** 0 **** --- 1,28 ---- + ; Test that functions with dynamic allocas get inlined in a case where + ; naively inlining it would result in a miscompilation. + + ; RUN: llvm-as < %s | opt -inline && + ; RUN: llvm-as < %s | opt -inline | llvm-dis | grep llvm.stacksave && + ; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep callee + + declare void %ext(int*) + implementation + + internal void %callee(uint %N) { + %P = alloca int, uint %N ;; dynamic alloca + call void %ext(int* %P) + ret void + } + + void %foo(uint %N) { + br label %Loop + Loop: + %count = phi uint [0, %0], [%next, %Loop] + %next = add uint %count, 1 + call void %callee(uint %N) + %cond = seteq uint %count, 100000 + br bool %cond, label %out, label %Loop + out: + ret void + } + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits