From e04d51f4a5a91689367729ac2bd33f6f12d04842 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 23 Mar 2005 23:48:56 +0000 Subject: [PATCH] GlobalMR should be able to analyze this function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20795 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../GlobalsModRef/chaining-analysis.ll | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/Analysis/GlobalsModRef/chaining-analysis.ll diff --git a/test/Analysis/GlobalsModRef/chaining-analysis.ll b/test/Analysis/GlobalsModRef/chaining-analysis.ll new file mode 100644 index 00000000000..5caa0a8eb93 --- /dev/null +++ b/test/Analysis/GlobalsModRef/chaining-analysis.ll @@ -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 +}