public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4
@ 2014-10-29 10:29 Zhenqiang Chen
  2014-10-29 15:00 ` Richard Henderson
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Zhenqiang Chen @ 2014-10-29 10:29 UTC (permalink / raw)
  To: 'Richard Henderson'; +Cc: gcc-patches

Hi,

The patch enhances ifcvt to allow_cc_mode if HAVE_cbranchcc4.

Bootstrap and no make check regression on X86-64.
Will add new test cases after ccmp is enabled.

Ok for trunk?

Thanks!
-Zhenqiang

ChangeLog:
2014-10-29  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* ifcvt.c (noce_emit_cmove, noce_get_alt_condition,
noce_get_condition):
	Allow CC mode if HAVE_cbranchcc4.

diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index a28f5c1..5cd0ac0 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -1441,10 +1441,17 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx
x, enum rtx_code code,
       end_sequence ();
     }
 
-  /* Don't even try if the comparison operands are weird.  */
+  /* Don't even try if the comparison operands are weird
+     except that the target supports cbranchcc4.  */
   if (! general_operand (cmp_a, GET_MODE (cmp_a))
       || ! general_operand (cmp_b, GET_MODE (cmp_b)))
-    return NULL_RTX;
+    {
+#if HAVE_cbranchcc4
+      if (GET_MODE_CLASS (GET_MODE (cmp_a)) != MODE_CC
+	  || cmp_b != const0_rtx)
+#endif
+	return NULL_RTX;
+    }
 
 #if HAVE_conditional_move
   unsignedp = (code == LTU || code == GEU
@@ -1770,6 +1777,11 @@ noce_get_alt_condition (struct noce_if_info *if_info,
rtx target,
   rtx cond, set;
   rtx_insn *insn;
   int reverse;
+  int allow_cc_mode = false;
+#if HAVE_cbranchcc4
+  allow_cc_mode = true;
+#endif
+
 
   /* If target is already mentioned in the known condition, return it.  */
   if (reg_mentioned_p (target, if_info->cond))
@@ -1891,7 +1903,7 @@ noce_get_alt_condition (struct noce_if_info *if_info,
rtx target,
     }
 
   cond = canonicalize_condition (if_info->jump, cond, reverse,
-				 earliest, target, false, true);
+				 earliest, target, allow_cc_mode, true);
   if (! cond || ! reg_mentioned_p (target, cond))
     return NULL;
 
@@ -2347,6 +2359,10 @@ noce_get_condition (rtx_insn *jump, rtx_insn
**earliest, bool then_else_reversed
 {
   rtx cond, set, tmp;
   bool reverse;
+  int allow_cc_mode = false;
+#if HAVE_cbranchcc4
+  allow_cc_mode = true;
+#endif
 
   if (! any_condjump_p (jump))
     return NULL_RTX;
@@ -2383,7 +2399,7 @@ noce_get_condition (rtx_insn *jump, rtx_insn
**earliest, bool then_else_reversed
   /* Otherwise, fall back on canonicalize_condition to do the dirty
      work of manipulating MODE_CC values and COMPARE rtx codes.  */
   tmp = canonicalize_condition (jump, cond, reverse, earliest,
-				NULL_RTX, false, true);
+				NULL_RTX, allow_cc_mode, true);
 
   /* We don't handle side-effects in the condition, like handling
      REG_INC notes and making sure no duplicate conditions are emitted.  */


> -----Original Message-----
> From: Richard Henderson [mailto:rth@redhat.com]
> Sent: Tuesday, October 28, 2014 12:03 AM
> To: Zhenqiang Chen
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [Ping] [PATCH, 10/10] aarch64: Handle ccmp in ifcvt to make
it
> work with cmov
> 
> On 10/27/2014 12:50 AM, Zhenqiang Chen wrote:
> > Good point. It is not ccmp special. It is cbranchcc4 related. If I
> > understand correct, without cbranchcc4, we need put the result to  a
> > tmp register and generate additional compares, which is not good for
> > performance.
> 
> It won't be an additional compare.  It is regenerating the compare at a
new
> location.  The old comparison would be deleted via dead code elimination.
> 
> That said,
> 
> > +#if HAVE_cbranchcc4
> > +  allow_cc_mode = true;
> > +#endif
> 
> does seem to be the right solution.
> 
> If a target has this, we ought to be able to reasonably expect that it's
got all
> the other patterns that this implies.  If a target is missing them,
hopefully we
> can get that sorted fairly quickly after this patch is included.
> 
> > +#if HAVE_cbranchcc4
> > +      if (!(GET_MODE_CLASS (GET_MODE (cmp_a)) == MODE_CC
> > +	    || GET_MODE_CLASS (GET_MODE (cmp_b)) == MODE_CC)) #endif
> 
> This test looks weird, considering what we're looking for.
> I think a better test is
> 
>   if (GET_MODE_CLASS (GET_MODE (cmp_a)) != MODE_CC
>       || cmp_b != const0_rtx)
> 
> Accepting something like (compare (reg:CC a) (reg:CC b)) is definitely
non-
> canonical.  Even (compare (const_int 0) (reg:CC flags)) is odd.
> 
> The ifcvt.c change should go in by itself.
> The expr.c change should also be standalone.
> The ccmp.c change should probably be merged with the initial commit of
> ccmp.c.
> The aaarch64.md change should probably be merged with the patch that
> adds cbranchcc.
> 
> 
> r~




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4
  2014-10-29 10:29 [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Zhenqiang Chen
@ 2014-10-29 15:00 ` Richard Henderson
  2014-11-03 10:06 ` [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4) Jan-Benedict Glaw
  2014-11-03 10:15 ` [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Andreas Schwab
  2 siblings, 0 replies; 8+ messages in thread
From: Richard Henderson @ 2014-10-29 15:00 UTC (permalink / raw)
  To: Zhenqiang Chen; +Cc: gcc-patches

On 10/29/2014 03:27 AM, Zhenqiang Chen wrote:
> 
> ChangeLog:
> 2014-10-29  Zhenqiang Chen  <zhenqiang.chen@arm.com>
> 
> 	* ifcvt.c (noce_emit_cmove, noce_get_alt_condition,
> noce_get_condition):
> 	Allow CC mode if HAVE_cbranchcc4.

Ok.


r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4)
  2014-10-29 10:29 [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Zhenqiang Chen
  2014-10-29 15:00 ` Richard Henderson
@ 2014-11-03 10:06 ` Jan-Benedict Glaw
  2014-11-03 10:15   ` Jakub Jelinek
  2014-11-03 10:16   ` Jan-Benedict Glaw
  2014-11-03 10:15 ` [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Andreas Schwab
  2 siblings, 2 replies; 8+ messages in thread
From: Jan-Benedict Glaw @ 2014-11-03 10:06 UTC (permalink / raw)
  To: Zhenqiang Chen, Hartmut Penner, Ulrich Weigand, Andreas Krebbel
  Cc: 'Richard Henderson', gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1765 bytes --]

On Wed, 2014-10-29 18:27:57 +0800, Zhenqiang Chen <zhenqiang.chen@arm.com> wrote:
> Hi,
> 
> The patch enhances ifcvt to allow_cc_mode if HAVE_cbranchcc4.
> 
> Bootstrap and no make check regression on X86-64.
> Will add new test cases after ccmp is enabled.
> 
> Ok for trunk?

This seems to uncover something for s390x-linux, see
http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372394

[...]
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -MP -MF ./.deps/ifcvt.TPo /home/jbglaw/repos/gcc/gcc/ifcvt.c
/home/jbglaw/repos/gcc/gcc/ifcvt.c:1456:5: error: token "." is not valid in preprocessor expressions
/home/jbglaw/repos/gcc/gcc/ifcvt.c:1788:5: error: token "." is not valid in preprocessor expressions
/home/jbglaw/repos/gcc/gcc/ifcvt.c:2370:5: error: token "." is not valid in preprocessor expressions
make[1]: *** [ifcvt.o] Error 1

It's choking on the HAVE_cbranchcc4 macro itself there.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
 Signature of:                            If it doesn't work, force it.
 the second  :                   If it breaks, it needed replacing anyway.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4
  2014-10-29 10:29 [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Zhenqiang Chen
  2014-10-29 15:00 ` Richard Henderson
  2014-11-03 10:06 ` [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4) Jan-Benedict Glaw
@ 2014-11-03 10:15 ` Andreas Schwab
  2 siblings, 0 replies; 8+ messages in thread
From: Andreas Schwab @ 2014-11-03 10:15 UTC (permalink / raw)
  To: Zhenqiang Chen; +Cc: 'Richard Henderson', gcc-patches

"Zhenqiang Chen" <zhenqiang.chen@arm.com> writes:

> diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
> index a28f5c1..5cd0ac0 100644
> --- a/gcc/ifcvt.c
> +++ b/gcc/ifcvt.c
> @@ -1441,10 +1441,17 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx
> x, enum rtx_code code,
>        end_sequence ();
>      }
>  
> -  /* Don't even try if the comparison operands are weird.  */
> +  /* Don't even try if the comparison operands are weird
> +     except that the target supports cbranchcc4.  */
>    if (! general_operand (cmp_a, GET_MODE (cmp_a))
>        || ! general_operand (cmp_b, GET_MODE (cmp_b)))
> -    return NULL_RTX;
> +    {
> +#if HAVE_cbranchcc4

You need to make that a runtime check.

  #ifdef HAVE_cbranchcc4
     if (HAVE_cbranchcc4)

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4)
  2014-11-03 10:06 ` [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4) Jan-Benedict Glaw
@ 2014-11-03 10:15   ` Jakub Jelinek
  2014-11-03 10:16   ` Jan-Benedict Glaw
  1 sibling, 0 replies; 8+ messages in thread
From: Jakub Jelinek @ 2014-11-03 10:15 UTC (permalink / raw)
  To: Jan-Benedict Glaw
  Cc: Zhenqiang Chen, Hartmut Penner, Ulrich Weigand, Andreas Krebbel,
	'Richard Henderson',
	gcc-patches

On Mon, Nov 03, 2014 at 11:06:06AM +0100, Jan-Benedict Glaw wrote:
> On Wed, 2014-10-29 18:27:57 +0800, Zhenqiang Chen <zhenqiang.chen@arm.com> wrote:
> > Hi,
> > 
> > The patch enhances ifcvt to allow_cc_mode if HAVE_cbranchcc4.
> > 
> > Bootstrap and no make check regression on X86-64.
> > Will add new test cases after ccmp is enabled.
> > 
> > Ok for trunk?
> 
> This seems to uncover something for s390x-linux, see
> http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372394
> 
> [...]
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -MP -MF ./.deps/ifcvt.TPo /home/jbglaw/repos/gcc/gcc/ifcvt.c
> /home/jbglaw/repos/gcc/gcc/ifcvt.c:1456:5: error: token "." is not valid in preprocessor expressions
> /home/jbglaw/repos/gcc/gcc/ifcvt.c:1788:5: error: token "." is not valid in preprocessor expressions
> /home/jbglaw/repos/gcc/gcc/ifcvt.c:2370:5: error: token "." is not valid in preprocessor expressions
> make[1]: *** [ifcvt.o] Error 1
> 
> It's choking on the HAVE_cbranchcc4 macro itself there.

Note the HAVE_* macros can be not defined, or defined to complex expressions
(for the conditions), not necessarily compile time constants.
At the start of ifcvt.c there is:
#ifndef HAVE_conditional_move
#define HAVE_conditional_move 0
#endif
#ifndef HAVE_incscc
#define HAVE_incscc 0
#endif
#ifndef HAVE_decscc
#define HAVE_decscc 0
#endif
#ifndef HAVE_trap
#define HAVE_trap 0
#endif

so supposedly HAVE_cbranchcc4 should be treated similarly, and all the
#if HAVE_cbranchcc4 code actually replaced with if (HAVE_cbranchcc4)
#instead.

	Jakub

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4)
  2014-11-03 10:06 ` [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4) Jan-Benedict Glaw
  2014-11-03 10:15   ` Jakub Jelinek
@ 2014-11-03 10:16   ` Jan-Benedict Glaw
  2014-11-04  2:23     ` Zhenqiang Chen
  2014-11-04  2:24     ` Zhenqiang Chen
  1 sibling, 2 replies; 8+ messages in thread
From: Jan-Benedict Glaw @ 2014-11-03 10:16 UTC (permalink / raw)
  To: Zhenqiang Chen, Hartmut Penner, Ulrich Weigand, Andreas Krebbel
  Cc: 'Richard Henderson', gcc-patches

[-- Attachment #1: Type: text/plain, Size: 4669 bytes --]

On Mon, 2014-11-03 11:06:06 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> On Wed, 2014-10-29 18:27:57 +0800, Zhenqiang Chen <zhenqiang.chen@arm.com> wrote:
> > Hi,
> > 
> > The patch enhances ifcvt to allow_cc_mode if HAVE_cbranchcc4.
> > 
> > Bootstrap and no make check regression on X86-64.
> > Will add new test cases after ccmp is enabled.
> > 
> > Ok for trunk?
> 
> This seems to uncover something for s390x-linux, see
> http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372394
> 
> [...]
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -MP -MF ./.deps/ifcvt.TPo /home/jbglaw/repos/gcc/gcc/ifcvt.c
> /home/jbglaw/repos/gcc/gcc/ifcvt.c:1456:5: error: token "." is not valid in preprocessor expressions
> /home/jbglaw/repos/gcc/gcc/ifcvt.c:1788:5: error: token "." is not valid in preprocessor expressions
> /home/jbglaw/repos/gcc/gcc/ifcvt.c:2370:5: error: token "." is not valid in preprocessor expressions
> make[1]: *** [ifcvt.o] Error 1
> 
> It's choking on the HAVE_cbranchcc4 macro itself there.

Oh, and with the most recent ifcvt.c changes, this boils down to:

g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -I../../../gcc/gcc/. -I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include -I/opt/cfarm/mpc/include  -I../../../gcc/gcc/../libdecnumber -I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../../gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -MP -MF ./.deps/ifcvt.TPo ../../../gcc/gcc/ifcvt.c
In file included from ./tm.h:19:0,
                 from ../../../gcc/gcc/ifcvt.c:23:
./options.h:263:36: error: token "." is not valid in preprocessor expressions
 #define target_flags global_options.x_target_flags
                                    ^
./options.h:4276:29: note: in expansion of macro ‘target_flags’
 #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
                             ^
./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
 #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
                          ^
../../../gcc/gcc/ifcvt.c:1467:5: note: in expansion of macro ‘HAVE_cbranchcc4’
 #if HAVE_cbranchcc4
     ^
./options.h:263:36: error: token "." is not valid in preprocessor expressions
 #define target_flags global_options.x_target_flags
                                    ^
./options.h:4276:29: note: in expansion of macro ‘target_flags’
 #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
                             ^
./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
 #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
                          ^
../../../gcc/gcc/ifcvt.c:1799:5: note: in expansion of macro ‘HAVE_cbranchcc4’
 #if HAVE_cbranchcc4
     ^
./options.h:263:36: error: token "." is not valid in preprocessor expressions
 #define target_flags global_options.x_target_flags
                                    ^
./options.h:4276:29: note: in expansion of macro ‘target_flags’
 #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
                             ^
./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
 #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
                          ^
../../../gcc/gcc/ifcvt.c:2381:5: note: in expansion of macro ‘HAVE_cbranchcc4’
 #if HAVE_cbranchcc4
     ^
make[2]: *** [ifcvt.o] Error 1



(See build
http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372420
for reference.)

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
Signature of:                   ...und wenn Du denkst, es geht nicht mehr,
the second  :                          kommt irgendwo ein Lichtlein her.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4)
  2014-11-03 10:16   ` Jan-Benedict Glaw
@ 2014-11-04  2:23     ` Zhenqiang Chen
  2014-11-04  2:24     ` Zhenqiang Chen
  1 sibling, 0 replies; 8+ messages in thread
From: Zhenqiang Chen @ 2014-11-04  2:23 UTC (permalink / raw)
  To: 'Jan-Benedict Glaw',
	Hartmut Penner, Ulrich Weigand, Andreas Krebbel
  Cc: 'Richard Henderson', gcc-patches



> -----Original Message-----
> From: Jan-Benedict Glaw [mailto:jbglaw@lug-owl.de]
> Sent: Monday, November 03, 2014 6:16 PM
> To: Zhenqiang Chen; Hartmut Penner; Ulrich Weigand; Andreas Krebbel
> Cc: 'Richard Henderson'; gcc-patches@gcc.gnu.org
> Subject: Re: [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt]
> Allow CC mode if HAVE_cbranchcc4)
> 
> On Mon, 2014-11-03 11:06:06 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de>
> wrote:
> > On Wed, 2014-10-29 18:27:57 +0800, Zhenqiang Chen
> <zhenqiang.chen@arm.com> wrote:
> > > Hi,
> > >
> > > The patch enhances ifcvt to allow_cc_mode if HAVE_cbranchcc4.
> > >
> > > Bootstrap and no make check regression on X86-64.
> > > Will add new test cases after ccmp is enabled.
> > >
> > > Ok for trunk?
> >
> > This seems to uncover something for s390x-linux, see
> > http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372394
> >
> > [...]
> > g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-
> exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings
> -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -
> Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common
> -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -
> I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -
> I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -
> I/home/jbglaw/repos/gcc/gcc/../libdecnumber -
> I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -
> I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -
> MP -MF ./.deps/ifcvt.TPo /home/jbglaw/repos/gcc/gcc/ifcvt.c
> > /home/jbglaw/repos/gcc/gcc/ifcvt.c:1456:5: error: token "." is not
> > valid in preprocessor expressions
> > /home/jbglaw/repos/gcc/gcc/ifcvt.c:1788:5: error: token "." is not
> > valid in preprocessor expressions
> > /home/jbglaw/repos/gcc/gcc/ifcvt.c:2370:5: error: token "." is not
> > valid in preprocessor expressions
> > make[1]: *** [ifcvt.o] Error 1
> >
> > It's choking on the HAVE_cbranchcc4 macro itself there.
> 
> Oh, and with the most recent ifcvt.c changes, this boils down to:
> 
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions
> -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-
> strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -
> pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -
> Werror -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -
> I../../../gcc/gcc/. -I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include
> -I/opt/cfarm/mpc/include  -I../../../gcc/gcc/../libdecnumber -
> I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -
> I../../../gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -MP -
> MF ./.deps/ifcvt.TPo ../../../gcc/gcc/ifcvt.c
> In file included from ./tm.h:19:0,
>                  from ../../../gcc/gcc/ifcvt.c:23:
> ./options.h:263:36: error: token "." is not valid in preprocessor expressions
> #define target_flags global_options.x_target_flags
>                                     ^
> ./options.h:4276:29: note: in expansion of macro ‘target_flags’
>  #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
>                              ^
> ./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
>  #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
>                           ^
> ../../../gcc/gcc/ifcvt.c:1467:5: note: in expansion of macro ‘HAVE_cbranchcc4’
>  #if HAVE_cbranchcc4
>      ^
> ./options.h:263:36: error: token "." is not valid in preprocessor expressions
> #define target_flags global_options.x_target_flags
>                                     ^
> ./options.h:4276:29: note: in expansion of macro ‘target_flags’
>  #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
>                              ^
> ./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
>  #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
>                           ^
> ../../../gcc/gcc/ifcvt.c:1799:5: note: in expansion of macro ‘HAVE_cbranchcc4’
>  #if HAVE_cbranchcc4
>      ^
> ./options.h:263:36: error: token "." is not valid in preprocessor expressions
> #define target_flags global_options.x_target_flags
>                                     ^
> ./options.h:4276:29: note: in expansion of macro ‘target_flags’
>  #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
>                              ^
> ./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
>  #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
>                           ^
> ../../../gcc/gcc/ifcvt.c:2381:5: note: in expansion of macro ‘HAVE_cbranchcc4’
>  #if HAVE_cbranchcc4
>      ^
> make[2]: *** [ifcvt.o] Error 1
> 
> 
> 
> (See build
> http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372420
> for reference.)
> 
> MfG, JBG
> 
> --
>       Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
> Signature of:                   ...und wenn Du denkst, es geht nicht mehr,
> the second  :                          kommt irgendwo ein Lichtlein her.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4)
  2014-11-03 10:16   ` Jan-Benedict Glaw
  2014-11-04  2:23     ` Zhenqiang Chen
@ 2014-11-04  2:24     ` Zhenqiang Chen
  1 sibling, 0 replies; 8+ messages in thread
From: Zhenqiang Chen @ 2014-11-04  2:24 UTC (permalink / raw)
  To: 'Jan-Benedict Glaw',
	Hartmut Penner, Ulrich Weigand, Andreas Krebbel
  Cc: 'Richard Henderson', gcc-patches

Sorry for breaking the build. The patch was reverted.

I will rework on it.

Thanks!
-Zhenqiang

> -----Original Message-----
> From: Jan-Benedict Glaw [mailto:jbglaw@lug-owl.de]
> Sent: Monday, November 03, 2014 6:16 PM
> To: Zhenqiang Chen; Hartmut Penner; Ulrich Weigand; Andreas Krebbel
> Cc: 'Richard Henderson'; gcc-patches@gcc.gnu.org
> Subject: Re: [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt]
> Allow CC mode if HAVE_cbranchcc4)
> 
> On Mon, 2014-11-03 11:06:06 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de>
> wrote:
> > On Wed, 2014-10-29 18:27:57 +0800, Zhenqiang Chen
> <zhenqiang.chen@arm.com> wrote:
> > > Hi,
> > >
> > > The patch enhances ifcvt to allow_cc_mode if HAVE_cbranchcc4.
> > >
> > > Bootstrap and no make check regression on X86-64.
> > > Will add new test cases after ccmp is enabled.
> > >
> > > Ok for trunk?
> >
> > This seems to uncover something for s390x-linux, see
> > http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372394
> >
> > [...]
> > g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-
> exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings
> -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -
> Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common
> -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -
> I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -
> I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -
> I/home/jbglaw/repos/gcc/gcc/../libdecnumber -
> I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -
> I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -
> MP -MF ./.deps/ifcvt.TPo /home/jbglaw/repos/gcc/gcc/ifcvt.c
> > /home/jbglaw/repos/gcc/gcc/ifcvt.c:1456:5: error: token "." is not
> > valid in preprocessor expressions
> > /home/jbglaw/repos/gcc/gcc/ifcvt.c:1788:5: error: token "." is not
> > valid in preprocessor expressions
> > /home/jbglaw/repos/gcc/gcc/ifcvt.c:2370:5: error: token "." is not
> > valid in preprocessor expressions
> > make[1]: *** [ifcvt.o] Error 1
> >
> > It's choking on the HAVE_cbranchcc4 macro itself there.
> 
> Oh, and with the most recent ifcvt.c changes, this boils down to:
> 
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions
> -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-
> strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -
> pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -
> Werror -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -
> I../../../gcc/gcc/. -I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include
> -I/opt/cfarm/mpc/include  -I../../../gcc/gcc/../libdecnumber -
> I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -
> I../../../gcc/gcc/../libbacktrace    -o ifcvt.o -MT ifcvt.o -MMD -MP -
> MF ./.deps/ifcvt.TPo ../../../gcc/gcc/ifcvt.c
> In file included from ./tm.h:19:0,
>                  from ../../../gcc/gcc/ifcvt.c:23:
> ./options.h:263:36: error: token "." is not valid in preprocessor expressions
> #define target_flags global_options.x_target_flags
>                                     ^
> ./options.h:4276:29: note: in expansion of macro ‘target_flags’
>  #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
>                              ^
> ./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
>  #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
>                           ^
> ../../../gcc/gcc/ifcvt.c:1467:5: note: in expansion of macro ‘HAVE_cbranchcc4’
>  #if HAVE_cbranchcc4
>      ^
> ./options.h:263:36: error: token "." is not valid in preprocessor expressions
> #define target_flags global_options.x_target_flags
>                                     ^
> ./options.h:4276:29: note: in expansion of macro ‘target_flags’
>  #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
>                              ^
> ./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
>  #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
>                           ^
> ../../../gcc/gcc/ifcvt.c:1799:5: note: in expansion of macro ‘HAVE_cbranchcc4’
>  #if HAVE_cbranchcc4
>      ^
> ./options.h:263:36: error: token "." is not valid in preprocessor expressions
> #define target_flags global_options.x_target_flags
>                                     ^
> ./options.h:4276:29: note: in expansion of macro ‘target_flags’
>  #define TARGET_HARD_FLOAT ((target_flags & MASK_SOFT_FLOAT) == 0)
>                              ^
> ./insn-flags.h:439:26: note: in expansion of macro ‘TARGET_HARD_FLOAT’
>  #define HAVE_cbranchcc4 (TARGET_HARD_FLOAT)
>                           ^
> ../../../gcc/gcc/ifcvt.c:2381:5: note: in expansion of macro ‘HAVE_cbranchcc4’
>  #if HAVE_cbranchcc4
>      ^
> make[2]: *** [ifcvt.o] Error 1
> 
> 
> 
> (See build
> http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=372420
> for reference.)
> 
> MfG, JBG
> 
> --
>       Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
> Signature of:                   ...und wenn Du denkst, es geht nicht mehr,
> the second  :                          kommt irgendwo ein Lichtlein her.



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-11-04  2:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-29 10:29 [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Zhenqiang Chen
2014-10-29 15:00 ` Richard Henderson
2014-11-03 10:06 ` [BUILDROBOT] s390x-linux: Breaking in ifcvt.c (was: [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4) Jan-Benedict Glaw
2014-11-03 10:15   ` Jakub Jelinek
2014-11-03 10:16   ` Jan-Benedict Glaw
2014-11-04  2:23     ` Zhenqiang Chen
2014-11-04  2:24     ` Zhenqiang Chen
2014-11-03 10:15 ` [PATCH, ifcvt] Allow CC mode if HAVE_cbranchcc4 Andreas Schwab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).