aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-07-25 19:57:03 +0000
committerOwen Anderson <resistor@mac.com>2007-07-25 19:57:03 +0000
commit5d72a422813ceeb8b71e49f2e7ea4ee7098ced3a (patch)
tree7174037d9f9bcdea411053350575427b91a13fd8 /test/Transforms
parent5434b092834700b6ec79ff49f35ebb5ee99c5dfe (diff)
downloadexternal_llvm-5d72a422813ceeb8b71e49f2e7ea4ee7098ced3a.zip
external_llvm-5d72a422813ceeb8b71e49f2e7ea4ee7098ced3a.tar.gz
external_llvm-5d72a422813ceeb8b71e49f2e7ea4ee7098ced3a.tar.bz2
Add basic support for performing whole-function RLE.
Note: This has not yet been thoroughly tested. Use at your own risk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40489 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/GVN/dominated.ll20
-rw-r--r--test/Transforms/GVN/nonlocal.ll19
-rw-r--r--test/Transforms/GVN/semidominated.ll19
3 files changed, 58 insertions, 0 deletions
diff --git a/test/Transforms/GVN/dominated.ll b/test/Transforms/GVN/dominated.ll
new file mode 100644
index 0000000..4a9e975
--- /dev/null
+++ b/test/Transforms/GVN/dominated.ll
@@ -0,0 +1,20 @@
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep DEAD
+
+define i32 @main(i32** %p) {
+block1:
+ %z = load i32** %p
+ br i1 true, label %block2, label %block3
+
+block2:
+ %a = load i32** %p
+ br label %block4
+
+block3:
+ %b = load i32** %p
+ br label %block4
+
+block4:
+ %DEAD = load i32** %p
+ %c = load i32* %DEAD
+ ret i32 %c
+} \ No newline at end of file
diff --git a/test/Transforms/GVN/nonlocal.ll b/test/Transforms/GVN/nonlocal.ll
new file mode 100644
index 0000000..7e5ef91
--- /dev/null
+++ b/test/Transforms/GVN/nonlocal.ll
@@ -0,0 +1,19 @@
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {DEAD =}
+
+define i32 @main(i32** %p) {
+block1:
+ br i1 true, label %block2, label %block3
+
+block2:
+ %a = load i32** %p
+ br label %block4
+
+block3:
+ %b = load i32** %p
+ br label %block4
+
+block4:
+ %DEAD = load i32** %p
+ %c = load i32* %DEAD
+ ret i32 %c
+} \ No newline at end of file
diff --git a/test/Transforms/GVN/semidominated.ll b/test/Transforms/GVN/semidominated.ll
new file mode 100644
index 0000000..89eac46
--- /dev/null
+++ b/test/Transforms/GVN/semidominated.ll
@@ -0,0 +1,19 @@
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {DEAD =}
+
+define i32 @main(i32* %p) {
+block1:
+ %z = load i32* %p
+ br i1 true, label %block2, label %block3
+
+block2:
+ br label %block4
+
+block3:
+ %b = bitcast i32 0 to i32
+ store i32 %b, i32* %p
+ br label %block4
+
+block4:
+ %DEAD = load i32* %p
+ ret i32 %DEAD
+} \ No newline at end of file