[llvm-commits] CVS: llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll 2006-11-04-ReplacingZeros.ll 2006-11-05-CycleGTLT.ll 2006-11-11-Squeeze.ll 2006-11-12-MergeNodes.ll

Nick Lewycky nicholas at mxc.ca
Wed Nov 22 15:49:32 PST 2006



Changes in directory llvm/test/Regression/Transforms/PredicateSimplifier:

2006-11-04-ImpossibleGT.ll added (r1.1)
2006-11-04-ReplacingZeros.ll added (r1.1)
2006-11-05-CycleGTLT.ll added (r1.1)
2006-11-11-Squeeze.ll added (r1.1)
2006-11-12-MergeNodes.ll added (r1.1)
---
Log message:

Update to new predicate simplifier VRP design. Fixes PR966: http://llvm.org/PR966  and PR967: http://llvm.org/PR967 .
Remove predicate simplifier from default gcc3 pipeline. New design is too
slow to enable by default.
Add new testcases for problems encountered in development.


---
Diffs of the changes:  (+148 -0)

 2006-11-04-ImpossibleGT.ll   |   19 +++++++++++++++
 2006-11-04-ReplacingZeros.ll |   30 +++++++++++++++++++++++
 2006-11-05-CycleGTLT.ll      |   14 +++++++++++
 2006-11-11-Squeeze.ll        |   31 ++++++++++++++++++++++++
 2006-11-12-MergeNodes.ll     |   54 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 148 insertions(+)


Index: llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll
diff -c /dev/null llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll:1.1
*** /dev/null	Wed Nov 22 17:49:26 2006
--- llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll	Wed Nov 22 17:49:15 2006
***************
*** 0 ****
--- 1,19 ----
+ ; RUN: llvm-as < %s | opt -predsimplify -disable-output
+ 
+ void %readMotionInfoFromNAL() {
+ entry:
+ 	br bool false, label %bb2425, label %cond_next30
+ 
+ cond_next30:		; preds = %entry
+ 	ret void
+ 
+ bb2418:		; preds = %bb2425
+ 	ret void
+ 
+ bb2425:		; preds = %entry
+ 	%tmp2427 = setgt int 0, 3		; <bool> [#uses=1]
+ 	br bool %tmp2427, label %cond_next2429, label %bb2418
+ 
+ cond_next2429:		; preds = %bb2425
+ 	ret void
+ }


Index: llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ReplacingZeros.ll
diff -c /dev/null llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ReplacingZeros.ll:1.1
*** /dev/null	Wed Nov 22 17:49:32 2006
--- llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-04-ReplacingZeros.ll	Wed Nov 22 17:49:15 2006
***************
*** 0 ****
--- 1,30 ----
+ ; RUN: llvm-as < %s | opt -predsimplify -disable-output
+ 
+ int %test_wp_B_slice(int %select_method) {
+ entry:
+ 	br label %bb309
+ 
+ cond_true114:		; preds = %bb309
+ 	%tmp130 = setlt int 0, 128		; <bool> [#uses=1]
+ 	%min = select bool %tmp130, int 0, int 127		; <int> [#uses=2]
+ 	%tmp143 = load int* null		; <int> [#uses=1]
+ 	br bool false, label %bb303, label %bb314
+ 
+ cond_true166:		; preds = %bb303
+ 	ret int 0
+ 
+ cond_false200:		; preds = %bb303
+ 	%tmp205 = sdiv int %min, 2		; <int> [#uses=1]
+ 	%iftmp.380.0.p = select bool false, int 0, int %tmp205		; <int> [#uses=0]
+ 	ret int 0
+ 
+ bb303:		; preds = %cond_true114
+ 	%tmp165 = seteq int %min, 0		; <bool> [#uses=1]
+ 	br bool %tmp165, label %cond_true166, label %cond_false200
+ 
+ bb309:		; preds = %bb19
+ 	br bool false, label %cond_true114, label %bb314
+ 
+ bb314:		; preds = %bb309
+ 	ret int 0
+ }


Index: llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-05-CycleGTLT.ll
diff -c /dev/null llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-05-CycleGTLT.ll:1.1
*** /dev/null	Wed Nov 22 17:49:32 2006
--- llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-05-CycleGTLT.ll	Wed Nov 22 17:49:15 2006
***************
*** 0 ****
--- 1,14 ----
+ ; RUN: llvm-as < %s | opt -predsimplify -disable-output
+ 
+ void %diff(int %N) {
+ entry:
+ 	%tmp = setgt int %N, 0		; <bool> [#uses=1]
+ 	br bool %tmp, label %bb519, label %bb744
+ 
+ bb519:		; preds = %entry
+ 	%tmp720101 = setlt int %N, 0		; <bool> [#uses=1]
+ 	br bool %tmp720101, label %bb744, label %bb744
+ 
+ bb744:		; preds = %bb519, %entry
+ 	ret void
+ }


Index: llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-11-Squeeze.ll
diff -c /dev/null llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-11-Squeeze.ll:1.1
*** /dev/null	Wed Nov 22 17:49:32 2006
--- llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-11-Squeeze.ll	Wed Nov 22 17:49:15 2006
***************
*** 0 ****
--- 1,31 ----
+ ; RUN: llvm-as < %s | opt -predsimplify -disable-output
+ 
+ 	%struct.cube_struct = type { int, int, int, int*, int*, int*, int*, int*, uint*, uint*, uint**, uint**, uint*, uint*, uint, int, int*, int, int }
+ %cube = external global %struct.cube_struct		; <%struct.cube_struct*> [#uses=2]
+ 
+ implementation   ; Functions:
+ 
+ fastcc void %cube_setup() {
+ entry:
+ 	%tmp = load int* getelementptr (%struct.cube_struct* %cube, int 0, uint 2)		; <int> [#uses=2]
+ 	%tmp = setlt int %tmp, 0		; <bool> [#uses=1]
+ 	br bool %tmp, label %bb, label %cond_next
+ 
+ cond_next:		; preds = %entry
+ 	%tmp2 = load int* getelementptr (%struct.cube_struct* %cube, int 0, uint 1)		; <int> [#uses=2]
+ 	%tmp5 = setlt int %tmp2, %tmp		; <bool> [#uses=1]
+ 	br bool %tmp5, label %bb, label %bb6
+ 
+ bb:		; preds = %cond_next, %entry
+ 	unreachable
+ 
+ bb6:		; preds = %cond_next
+ 	%tmp98124 = setgt int %tmp2, 0		; <bool> [#uses=1]
+ 	br bool %tmp98124, label %bb42, label %bb99
+ 
+ bb42:		; preds = %bb6
+ 	ret void
+ 
+ bb99:		; preds = %bb6
+ 	ret void
+ }


Index: llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-12-MergeNodes.ll
diff -c /dev/null llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-12-MergeNodes.ll:1.1
*** /dev/null	Wed Nov 22 17:49:32 2006
--- llvm/test/Regression/Transforms/PredicateSimplifier/2006-11-12-MergeNodes.ll	Wed Nov 22 17:49:15 2006
***************
*** 0 ****
--- 1,54 ----
+ ; RUN: llvm-as < %s | opt -predsimplify -disable-output
+ 
+ ; ModuleID = 'b.bc'
+ target datalayout = "e-p:32:32"
+ target endian = little
+ target pointersize = 32
+ target triple = "i686-pc-linux-gnu"
+ deplibs = [ "c", "crtend" ]
+ 	%struct.VDIR_ST = type { int, int, int, %struct.acl*, %struct.pfile*, %struct.vlink*, %struct.vlink*, %struct.vlink*, %struct.VDIR_ST*, %struct.VDIR_ST* }
+ 	%struct.acl = type { int, sbyte*, sbyte*, sbyte*, %struct.restrict*, %struct.acl*, %struct.acl* }
+ 	%struct.avalue = type { sbyte* }
+ 	%struct.pattrib = type { sbyte, sbyte*, sbyte*, %struct.avalue, %struct.pattrib*, %struct.pattrib* }
+ 	%struct.pfile = type { int, int, int, int, int, %struct.vlink*, %struct.vlink*, %struct.pattrib*, %struct.pfile*, %struct.pfile* }
+ 	%struct.restrict = type { %struct.acl*, %struct.acl* }
+ 	%struct.vlink = type { int, sbyte*, sbyte, int, sbyte*, %struct.vlink*, %struct.vlink*, sbyte*, sbyte*, sbyte*, sbyte*, int, int, %struct.acl*, int, int, sbyte*, %struct.pattrib*, %struct.pfile*, %struct.vlink*, %struct.vlink* }
+ 
+ implementation   ; Functions:
+ 
+ void %vl_insert(%struct.vlink* %vl) {
+ entry:
+ 	%tmp91 = call int %vl_comp( )		; <int> [#uses=2]
+ 	%tmp93 = setgt int %tmp91, 0		; <bool> [#uses=1]
+ 	br bool %tmp93, label %cond_next84, label %bb94
+ 
+ cond_next84:		; preds = %entry
+ 	ret void
+ 
+ bb94:		; preds = %entry
+ 	%tmp96 = seteq int %tmp91, 0		; <bool> [#uses=1]
+ 	br bool %tmp96, label %cond_true97, label %cond_next203
+ 
+ cond_true97:		; preds = %bb94
+ 	br bool false, label %cond_next105, label %cond_true102
+ 
+ cond_true102:		; preds = %cond_true97
+ 	ret void
+ 
+ cond_next105:		; preds = %cond_true97
+ 	%tmp110 = getelementptr %struct.vlink* %vl, int 0, uint 12		; <int*> [#uses=1]
+ 	%tmp111 = load int* %tmp110		; <int> [#uses=1]
+ 	%tmp129 = seteq int %tmp111, 0		; <bool> [#uses=1]
+ 	br bool %tmp129, label %cond_true130, label %cond_next133
+ 
+ cond_true130:		; preds = %cond_next105
+ 	ret void
+ 
+ cond_next133:		; preds = %cond_next105
+ 	ret void
+ 
+ cond_next203:		; preds = %bb94
+ 	ret void
+ }
+ 
+ declare int %vl_comp()






More information about the llvm-commits mailing list