summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-06-24 12:20:24 +0100
committerNicolas Geoffray <ngeoffray@google.com>2015-06-24 16:33:23 +0100
commit18b236e5261d2b1f312e632a4d3bb2273c8bf641 (patch)
tree1f4b070a76ec80935a470a1245dd37c35b71ece2 /test
parent574cce14025e153d87ec051926d331c5a39e5f92 (diff)
downloadart-18b236e5261d2b1f312e632a4d3bb2273c8bf641.zip
art-18b236e5261d2b1f312e632a4d3bb2273c8bf641.tar.gz
art-18b236e5261d2b1f312e632a4d3bb2273c8bf641.tar.bz2
Recompute dominator tree after DCE.
bug:22031382 (cherry picked from commit 1f82ecc6a0c9f88d03d6d1a6d95eeb8707bd06c1) Change-Id: I9a74edb185cb806045903dfe9695d9cc1a02e86b
Diffstat (limited to 'test')
-rw-r--r--test/515-dce-dominator/expected.txt1
-rw-r--r--test/515-dce-dominator/info.txt3
-rw-r--r--test/515-dce-dominator/smali/Dominator.smali37
-rw-r--r--test/515-dce-dominator/src/Main.java28
4 files changed, 69 insertions, 0 deletions
diff --git a/test/515-dce-dominator/expected.txt b/test/515-dce-dominator/expected.txt
new file mode 100644
index 0000000..ccaf6f8
--- /dev/null
+++ b/test/515-dce-dominator/expected.txt
@@ -0,0 +1 @@
+Enter
diff --git a/test/515-dce-dominator/info.txt b/test/515-dce-dominator/info.txt
new file mode 100644
index 0000000..af706e0
--- /dev/null
+++ b/test/515-dce-dominator/info.txt
@@ -0,0 +1,3 @@
+Regression test for the DCE phase of optimizing, where
+we need to recompute the full dominance information of
+the graph when blocks get removed.
diff --git a/test/515-dce-dominator/smali/Dominator.smali b/test/515-dce-dominator/smali/Dominator.smali
new file mode 100644
index 0000000..a504aba
--- /dev/null
+++ b/test/515-dce-dominator/smali/Dominator.smali
@@ -0,0 +1,37 @@
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+.class public LDominator;
+
+.super Ljava/lang/Object;
+
+.method public static method(I)I
+ .registers 2
+ const/4 v0, 0
+ :b1
+ if-ne v0, v0, :b3
+ :b2
+ if-eq v0, p0, :b4
+ :b5
+ if-eq v0, p0, :b2
+ goto :b6
+ :b4
+ goto :b7
+ :b3
+ goto :b6
+ :b6
+ goto :b7
+ :b7
+ return v1
+.end method
diff --git a/test/515-dce-dominator/src/Main.java b/test/515-dce-dominator/src/Main.java
new file mode 100644
index 0000000..bf9ee25
--- /dev/null
+++ b/test/515-dce-dominator/src/Main.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.lang.reflect.Method;
+
+public class Main {
+ public static void main(String[] args) throws Exception {
+ // Workaround for b/18051191.
+ System.out.println("Enter");
+ Class<?> c = Class.forName("Dominator");
+ Method m = c.getMethod("method", int.class);
+ Object[] arguments = { 5 };
+ m.invoke(null, arguments);
+ }
+}