From: Chris Lattner Date: Thu, 16 May 2002 01:03:12 +0000 (+0000) Subject: Add tests of redundant load elimination X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5abaa0c2905ea6c5a15056783f01c9551b49f63b;p=oota-llvm.git Add tests of redundant load elimination git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2636 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Analysis/LoadVN/RLE-Eliminate.ll b/test/Analysis/LoadVN/RLE-Eliminate.ll new file mode 100644 index 00000000000..a8b1bf9f45d --- /dev/null +++ b/test/Analysis/LoadVN/RLE-Eliminate.ll @@ -0,0 +1,26 @@ +; This testcase ensures that redundant loads are eliminated when they should +; be. All RL variables (redundant loads) should be eliminated. +; +; RUN: if as < %s | opt -gcse | dis | grep %RL +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi +; +int "test1"(int* %P) { + %A = load int* %P + %RL = load int* %P + %C = add int %A, %RL + ret int %C +} + +int "test2"(int* %P) { + %A = load int* %P + br label %BB2 +BB2: + br label %BB3 +BB3: + %RL = load int* %P + %B = add int %A, %RL + ret int %B +} + diff --git a/test/Analysis/LoadVN/RLE-Preserve.ll b/test/Analysis/LoadVN/RLE-Preserve.ll new file mode 100644 index 00000000000..50a3256d197 --- /dev/null +++ b/test/Analysis/LoadVN/RLE-Preserve.ll @@ -0,0 +1,27 @@ +; This testcase ensures that redundant loads are preserved when they are not +; allowed to be eliminated. +; RUN: as < %s | dis > Output/%s.before +; RUN: as < %s | opt -gcse | dis > Output/%s.after +; RUN: diff Output/%s.before Output/%s.after +; +int "test1"(int* %P) { + %A = load int* %P + store int 1, int * %P + %B = load int* %P + %C = add int %A, %B + ret int %C +} + +int "test2"(int* %P) { + %A = load int* %P + br label %BB2 +BB2: + store int 5, int * %P + br label %BB3 +BB3: + %B = load int* %P + %C = add int %A, %B + ret int %C +} + +