diff options
author | Chris Lattner <sabre@nondot.org> | 2002-08-22 17:31:36 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-08-22 17:31:36 +0000 |
commit | ac39b4ecabfabfca3a66acf77841f4b9eec666ff (patch) | |
tree | 68bfc5574da2e478dbbd11fa84077c9f22a65148 /test | |
parent | ff9a9e5b134b42d4575f876daf75cca43f39db33 (diff) | |
download | external_llvm-ac39b4ecabfabfca3a66acf77841f4b9eec666ff.zip external_llvm-ac39b4ecabfabfca3a66acf77841f4b9eec666ff.tar.gz external_llvm-ac39b4ecabfabfca3a66acf77841f4b9eec666ff.tar.bz2 |
Initial testcases for basicaa alias analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3462 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Analysis/BasicAA/Makefile | 10 | ||||
-rw-r--r-- | test/Analysis/BasicAA/gcsetest.ll | 23 | ||||
-rw-r--r-- | test/Transforms/BasicAA/Makefile | 10 | ||||
-rw-r--r-- | test/Transforms/BasicAA/gcsetest.ll | 23 |
4 files changed, 66 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/Makefile b/test/Analysis/BasicAA/Makefile new file mode 100644 index 0000000..91acd4d --- /dev/null +++ b/test/Analysis/BasicAA/Makefile @@ -0,0 +1,10 @@ + +LEVEL = ../../../.. +include $(LEVEL)/test/Makefile.tests + +TESTS := $(wildcard *.ll) + +all:: $(addprefix Output/, $(TESTS:%.ll=%.ll.out)) + +Output/%.ll.out: %.ll Output/.dir $(LOPT) + -$(TESTRUNR) $< diff --git a/test/Analysis/BasicAA/gcsetest.ll b/test/Analysis/BasicAA/gcsetest.ll new file mode 100644 index 0000000..f6f7db9 --- /dev/null +++ b/test/Analysis/BasicAA/gcsetest.ll @@ -0,0 +1,23 @@ +; Test that GCSE uses basicaa to do alias analysis, which is capable of +; disambiguating some obvious cases. All loads should be removable in +; this testcase. + +; RUN: if as < %s | opt -basicaa -gcse -instcombine -dce | dis | grep load +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +%A = global int 7 +%B = global int 8 +implementation + +int %test() { + %A1 = load int* %A + + store int 123, int* %B ; Store cannot alias %A + + %A2 = load int* %A + %X = sub int %A1, %A2 + ret int %X +} + diff --git a/test/Transforms/BasicAA/Makefile b/test/Transforms/BasicAA/Makefile new file mode 100644 index 0000000..91acd4d --- /dev/null +++ b/test/Transforms/BasicAA/Makefile @@ -0,0 +1,10 @@ + +LEVEL = ../../../.. +include $(LEVEL)/test/Makefile.tests + +TESTS := $(wildcard *.ll) + +all:: $(addprefix Output/, $(TESTS:%.ll=%.ll.out)) + +Output/%.ll.out: %.ll Output/.dir $(LOPT) + -$(TESTRUNR) $< diff --git a/test/Transforms/BasicAA/gcsetest.ll b/test/Transforms/BasicAA/gcsetest.ll new file mode 100644 index 0000000..f6f7db9 --- /dev/null +++ b/test/Transforms/BasicAA/gcsetest.ll @@ -0,0 +1,23 @@ +; Test that GCSE uses basicaa to do alias analysis, which is capable of +; disambiguating some obvious cases. All loads should be removable in +; this testcase. + +; RUN: if as < %s | opt -basicaa -gcse -instcombine -dce | dis | grep load +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +%A = global int 7 +%B = global int 8 +implementation + +int %test() { + %A1 = load int* %A + + store int 123, int* %B ; Store cannot alias %A + + %A2 = load int* %A + %X = sub int %A1, %A2 + ret int %X +} + |