* [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).