Patchwork S/390: Make S/390 a logical_op_short_circuit target

login
register
mail settings
Submitter Andreas Krebbel
Date March 28, 2014, 12:14 p.m.
Message ID <20140328121430.GA31529@bart>
Download mbox | patch
Permalink /patch/334678/
State New
Headers show

Comments

Andreas Krebbel - March 28, 2014, 12:14 p.m.
Hi,

S/390 does not not define LOGICAL_OP_NON_SHORT_CIRCUIT but its default
value depends on the branch cost.  On S/390 we set a branch cost of 1
which makes us a logical_op_short_circuit target.

This "fixes" the following testcases:

< FAIL: gcc.dg/binop-xor1.c scan-tree-dump-times optimized "\\\\^" 1
< FAIL: gcc.dg/tree-ssa/forwprop-28.c scan-tree-dump-times forwprop1 "Replaced" 8
< FAIL: gcc.dg/tree-ssa/vrp87.c scan-tree-dump vrp2 "Folded into: if.*"
< FAIL: gcc.dg/tree-ssa/vrp87.c scan-tree-dump cddce2 "Deleting.*_Bool.*;"

Bye,

-Andreas-

2014-03-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Remove s390 special
          option.
	* lib/target-supports.exp: Return true for s390
          in check_effective_logical_op_short_circuit.

Patch

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
index 1e46634..cafdf13 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
@@ -1,6 +1,5 @@ 
 /* { dg-do compile } */ 
 /* { dg-options "-O2 -fdump-tree-dom1-details" } */
-/* { dg-additional-options "-mbranch-cost=2" { target s390*-*-* } } */
 struct bitmap_head_def;
 typedef struct bitmap_head_def *bitmap;
 typedef const struct bitmap_head_def *const_bitmap;
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index bee8471..0d2ccd5 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5712,6 +5712,7 @@  proc check_effective_target_logical_op_short_circuit {} {
 	 || [istarget arc*-*-*]
 	 || [istarget avr*-*-*]
 	 || [istarget crisv32-*-*] || [istarget cris-*-*]
+	 || [istarget s390*-*-*]
 	 || [check_effective_target_arm_cortex_m] } {
 	return 1
     }