Commit 3d427cc1 by Andreas Krebbel Committed by Andreas Krebbel

s390.h: Make BRANCH_COST an option.

2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.h: Make BRANCH_COST an option.
	* config/s390/s390.opt: New option -mbranch-cost.

2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.dg/pr46309.c: Set branch-cost to 2 for s390 and s390x.
	* gcc.dg/pr44194-1.c: Disable since s390 returns structs always in
	memory.
	* gfortran.dg/reassoc_4.f: Force max-completely-peeled-insns to
	the default value for s390 and s390x.

From-SVN: r183555
parent 28877321
2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.h: Make BRANCH_COST an option.
* config/s390/s390.opt: New option -mbranch-cost.
2012-01-26 Richard Henderson <rth@redhat.com> 2012-01-26 Richard Henderson <rth@redhat.com>
Revert 2012-01-24 change: Revert 2012-01-24 change:
......
...@@ -722,7 +722,7 @@ do { \ ...@@ -722,7 +722,7 @@ do { \
/* A C expression for the cost of a branch instruction. A value of 1 /* A C expression for the cost of a branch instruction. A value of 1
is the default; other values are interpreted relative to that. */ is the default; other values are interpreted relative to that. */
#define BRANCH_COST(speed_p, predictable_p) 1 #define BRANCH_COST(speed_p, predictable_p) s390_branch_cost
/* Nonzero if access to memory by bytes is slow and undesirable. */ /* Nonzero if access to memory by bytes is slow and undesirable. */
#define SLOW_BYTE_ACCESS 1 #define SLOW_BYTE_ACCESS 1
......
...@@ -140,3 +140,9 @@ Warn if a single function's framesize exceeds the given framesize ...@@ -140,3 +140,9 @@ Warn if a single function's framesize exceeds the given framesize
mzarch mzarch
Target Report RejectNegative Negative(mesa) Mask(ZARCH) Target Report RejectNegative Negative(mesa) Mask(ZARCH)
z/Architecture z/Architecture
mbranch-cost=
Target Report Joined RejectNegative UInteger Var(s390_branch_cost) Init(1)
Set the branch costs for conditional branch instructions. Reasonable
values are small, non-negative integers. The default branch cost is
1.
2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.dg/pr46309.c: Set branch-cost to 2 for s390 and s390x.
* gcc.dg/pr44194-1.c: Disable since s390 returns structs always in
memory.
* gfortran.dg/reassoc_4.f: Force max-completely-peeled-insns to
the default value for s390 and s390x.
2012-01-25 Aldy Hernandez <aldyh@redhat.com> 2012-01-25 Aldy Hernandez <aldyh@redhat.com>
PR lto/51698 PR lto/51698
......
/* { dg-do compile { target { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } } } */ /* { dg-do compile { target { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } } } */
/* { dg-options "-O2 -fdump-rtl-dse1" } */ /* { dg-options "-O2 -fdump-rtl-dse1" } */
/* Restricting to 64-bit targets since 32-bit targets return /* Restricting to 64-bit targets since 32-bit targets return
structures in memory. */ structures in memory. */
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
/* The transformation depends on BRANCH_COST being greater than 1 /* The transformation depends on BRANCH_COST being greater than 1
(see the notes in the PR), so try to force that. */ (see the notes in the PR), so try to force that. */
/* { dg-additional-options "-mtune=octeon2" { target mips*-*-* } } */ /* { dg-additional-options "-mtune=octeon2" { target mips*-*-* } } */
/* { dg-additional-options "-mbranch-cost=2" { target avr*-*-* } } */ /* { dg-additional-options "-mbranch-cost=2" { target avr*-*-* s390*-*-* } } */
int int
f1 (int a) f1 (int a)
......
! { dg-do compile } ! { dg-do compile }
! { dg-options "-O3 -ffast-math -fdump-tree-reassoc1" } ! { dg-options "-O3 -ffast-math -fdump-tree-reassoc1" }
! { dg-options "-O3 -ffast-math -fdump-tree-reassoc1 --param max-completely-peel-times=16" { target spu-*-* } } ! { dg-options "-O3 -ffast-math -fdump-tree-reassoc1 --param max-completely-peel-times=16" { target spu-*-* } }
! { dg-options "-O3 -ffast-math -fdump-tree-reassoc1 --param max-completely-peeled-insns=400" { target s390*-*-* } }
subroutine anisonl(w,vo,anisox,s,ii1,jj1,weight) subroutine anisonl(w,vo,anisox,s,ii1,jj1,weight)
integer ii1,jj1,i1,iii1,j1,jjj1,k1,l1,m1,n1 integer ii1,jj1,i1,iii1,j1,jjj1,k1,l1,m1,n1
real*8 w(3,3),vo(3,3),anisox(3,3,3,3),s(60,60),weight real*8 w(3,3),vo(3,3),anisox(3,3,3,3),s(60,60),weight
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment