diff options
author | Chris Lattner <sabre@nondot.org> | 2011-04-11 23:09:44 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-04-11 23:09:44 +0000 |
commit | b5f18f5df00e861b68a06d7d6da0664b3e0ba3d8 (patch) | |
tree | eefa1876d90ecf627fe5b2398531741352206443 /test | |
parent | ef9d9fdde13312825586350495746b0a8205ff12 (diff) | |
download | external_llvm-b5f18f5df00e861b68a06d7d6da0664b3e0ba3d8.zip external_llvm-b5f18f5df00e861b68a06d7d6da0664b3e0ba3d8.tar.gz external_llvm-b5f18f5df00e861b68a06d7d6da0664b3e0ba3d8.tar.bz2 |
remove the StructRetPromotion pass. It is unused, not maintained and
has some bugs. If this is interesting functionality, it should be
reimplemented in the argpromotion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129314 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
5 files changed, 0 insertions, 87 deletions
diff --git a/test/Transforms/SRETPromotion/2008-03-11-attributes.ll b/test/Transforms/SRETPromotion/2008-03-11-attributes.ll deleted file mode 100644 index 55abec5..0000000 --- a/test/Transforms/SRETPromotion/2008-03-11-attributes.ll +++ /dev/null @@ -1,7 +0,0 @@ -; RUN: opt < %s -sretpromotion -disable-output - %struct.ObjPoint = type { double, double, double, double, double, double } - -define void @RotatePoint(%struct.ObjPoint* sret %agg.result, %struct.ObjPoint* byval %a, double %rx, double %ry, double %rz) nounwind { -entry: - unreachable -} diff --git a/test/Transforms/SRETPromotion/2008-06-04-function-pointer-passing.ll b/test/Transforms/SRETPromotion/2008-06-04-function-pointer-passing.ll deleted file mode 100644 index 1168b0b..0000000 --- a/test/Transforms/SRETPromotion/2008-06-04-function-pointer-passing.ll +++ /dev/null @@ -1,24 +0,0 @@ -; This test lures sretpromotion into promoting the sret argument of foo, even -; when the function is used as an argument to bar. It used to not check for -; this, assuming that all users of foo were direct calls, resulting in an -; assertion failure later on. - -; We're mainly testing for opt not to crash, but we'll check to see if the sret -; attribute is still there for good measure. -; RUN: opt < %s -sretpromotion -S | grep sret - -%struct.S = type <{ i32, i32 }> - -define i32 @main() { -entry: - %tmp = alloca %struct.S ; <%struct.S*> [#uses=1] - call void @bar( %struct.S* sret %tmp, void (%struct.S*, ...)* @foo ) - ret i32 undef -} - -declare void @bar(%struct.S* sret , void (%struct.S*, ...)*) - -define internal void @foo(%struct.S* sret %agg.result, ...) { -entry: - ret void -} diff --git a/test/Transforms/SRETPromotion/2008-06-05-non-call-use.ll b/test/Transforms/SRETPromotion/2008-06-05-non-call-use.ll deleted file mode 100644 index 26c6a6e..0000000 --- a/test/Transforms/SRETPromotion/2008-06-05-non-call-use.ll +++ /dev/null @@ -1,20 +0,0 @@ -; This test shows an sret function that is used as an operand to a bitcast. -; StructRetPromotion used to assume that a function was only used by call or -; invoke instructions, making this code cause an assertion failure. - -; We're mainly testing for opt not to crash, but we'll check to see if the sret -; attribute is still there for good measure. -; RUN: opt < %s -sretpromotion -S | grep sret - -%struct.S = type <{ i32, i32 }> - -define i32 @main() { -entry: - %bar = bitcast void (%struct.S*)* @foo to i32 ()* - ret i32 undef -} - -define internal void @foo(%struct.S* sret) { -entry: - ret void -} diff --git a/test/Transforms/SRETPromotion/basictest.ll b/test/Transforms/SRETPromotion/basictest.ll deleted file mode 100644 index ff047dc..0000000 --- a/test/Transforms/SRETPromotion/basictest.ll +++ /dev/null @@ -1,33 +0,0 @@ -; RUN: opt < %s -sretpromotion -S > %t -; RUN: cat %t | grep sret | count 1 - -; This function is promotable -define internal void @promotable({i32, i32}* sret %s) { - %A = getelementptr {i32, i32}* %s, i32 0, i32 0 - store i32 0, i32* %A - %B = getelementptr {i32, i32}* %s, i32 0, i32 0 - store i32 1, i32* %B - ret void -} - -; This function is not promotable (due to it's use below) -define internal void @notpromotable({i32, i32}* sret %s) { - %A = getelementptr {i32, i32}* %s, i32 0, i32 0 - store i32 0, i32* %A - %B = getelementptr {i32, i32}* %s, i32 0, i32 0 - store i32 1, i32* %B - ret void -} - -define void @caller({i32, i32}* %t) { - %s = alloca {i32, i32} - call void @promotable({i32, i32}* %s) - %A = getelementptr {i32, i32}* %s, i32 0, i32 0 - %a = load i32* %A - %B = getelementptr {i32, i32}* %s, i32 0, i32 0 - %b = load i32* %B - ; This passes in something that's not an alloca, which makes the argument not - ; promotable - call void @notpromotable({i32, i32}* %t) - ret void -} diff --git a/test/Transforms/SRETPromotion/dg.exp b/test/Transforms/SRETPromotion/dg.exp deleted file mode 100644 index f200589..0000000 --- a/test/Transforms/SRETPromotion/dg.exp +++ /dev/null @@ -1,3 +0,0 @@ -load_lib llvm.exp - -RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]] |