aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/Analysis/DSGraph/buglobals.ll21
-rw-r--r--test/Analysis/DSGraph/constantize.ll13
2 files changed, 34 insertions, 0 deletions
diff --git a/test/Analysis/DSGraph/buglobals.ll b/test/Analysis/DSGraph/buglobals.ll
new file mode 100644
index 0000000..11fc72c
--- /dev/null
+++ b/test/Analysis/DSGraph/buglobals.ll
@@ -0,0 +1,21 @@
+; This tests to make sure that G ends up in the globals graph of the BU pass.
+; If it is not, then %G will get converted to a 'constant' from a 'global'
+;
+; RUN: as < %s | opt -ds-opt -globaldce | dis | grep %G
+
+
+%G = internal global int 0 ; <int*> [#uses=2]
+
+implementation ; Functions:
+
+internal void %foo() {
+ %tmp.0 = load int* %G ; <int> [#uses=1]
+ %tmp.1 = add int %tmp.0, 1 ; <int> [#uses=1]
+ store int %tmp.1, int* %G
+ ret void
+}
+
+int %main() {
+ call void %foo( )
+ ret int 0
+}
diff --git a/test/Analysis/DSGraph/constantize.ll b/test/Analysis/DSGraph/constantize.ll
new file mode 100644
index 0000000..08f0338
--- /dev/null
+++ b/test/Analysis/DSGraph/constantize.ll
@@ -0,0 +1,13 @@
+; Make sure that the ds-opt pass is constantizing globals
+;
+; RUN: as < %s | opt -ds-opt | dis | grep %G | grep constant
+
+
+%G = internal global int 0 ; <int*> [#uses=2]
+
+implementation ; Functions:
+
+int %main() {
+ %A = load int* %G
+ ret int %A
+}