aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-11-01 18:57:49 +0000
committerChris Lattner <sabre@nondot.org>2009-11-01 18:57:49 +0000
commit0037bfabd4733499ea8296dd1cfa8f579b50d13e (patch)
treeb8c29fda7939467baa0987c01ddc5d94e640e939 /test
parentc4775e4b973aaf6695dc00a3403b8b64f5257568 (diff)
downloadexternal_llvm-0037bfabd4733499ea8296dd1cfa8f579b50d13e.zip
external_llvm-0037bfabd4733499ea8296dd1cfa8f579b50d13e.tar.gz
external_llvm-0037bfabd4733499ea8296dd1cfa8f579b50d13e.tar.bz2
We currently only run ipsccp at LTO time, which is silly. It subsumes
ipconstprop and doesn't take much time. Just run it in its place. This adds a testcase for it, which I plan to expand to cover other "integration" cases, where we expect the optimizer to be able to eliminate various things. Due to phase order issues we've regressed in a number of areas and integration tests are the only way I see to prevent this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85729 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/FrontendC++/integration-O2.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/FrontendC++/integration-O2.cpp b/test/FrontendC++/integration-O2.cpp
new file mode 100644
index 0000000..bb65ac2
--- /dev/null
+++ b/test/FrontendC++/integration-O2.cpp
@@ -0,0 +1,19 @@
+// RUN: %llvmgxx %s -O2 -S -o - | FileCheck %s
+
+// This test verifies that we get expected codegen out of the -O2 optimization
+// level from the full optimizer.
+
+
+
+// Verify that ipsccp is running and can eliminate globals.
+static int test1g = 42;
+void test1f1() {
+ if (test1g == 0) test1g = 0;
+}
+int test1f2() {
+ return test1g;
+}
+
+// CHECK: @_Z7test1f2v()
+// CHECK: entry:
+// CHECK-NEXT: ret i32 42