GlobalMR should be able to analyze this function.
authorChris Lattner <sabre@nondot.org>
Wed, 23 Mar 2005 23:48:56 +0000 (23:48 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Mar 2005 23:48:56 +0000 (23:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20795 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/GlobalsModRef/chaining-analysis.ll [new file with mode: 0644]

diff --git a/test/Analysis/GlobalsModRef/chaining-analysis.ll b/test/Analysis/GlobalsModRef/chaining-analysis.ll
new file mode 100644 (file)
index 0000000..5caa0a8
--- /dev/null
@@ -0,0 +1,20 @@
+; RUN: llvm-as < %s | opt -globalsmodref-aa -load-vn -gcse | llvm-dis | not grep load
+
+; This test requires the use of previous analyses to determine that 
+; doesnotmodX does not modify X (because 'sin' doesn't).
+
+%X = internal global int 4
+
+declare double %sin(double)
+
+int %test(int *%P) {
+  store int 12,  int* %X
+  call double %doesnotmodX(double 1.0)
+  %V = load int* %X
+  ret int %V
+}
+
+double %doesnotmodX(double %V) {
+  %V2 = call double %sin(double %V)
+  ret double %V2
+}