3 msgNewbie questions about gcc / glibc
3 msgTwo quick C++ performace inquiries
4 msgSigned division with rounding towards -infinity...
72 msgLink tests after GCC_NO_EXECUTABLES

porting problem again: ICE in add_clobbers
\ Tomas Svensson (18 Sep 2007)
. \ Ian Lance Taylor (18 Sep 2007)
. \ Tomas Svensson (18 Sep 2007)
. . \ Jim Wilson (18 Sep 2007)
. . . \ Tomas Svensson (19 Sep 2007)
. . . . \ Ian Lance Taylor (19 Sep 2007)
. . . . . \ Tomas Svensson (21 Sep 2007)
. . . . . . \ Rask Ingemann Lambertsen (21 Sep 2007)
. . . . . . \ Jim Wilson (22 Sep 2007)
. \ Rask Ingemann Lambertsen (21 Sep 2007)

1 msggcc-4.1-20070917 is now available
9 msgbootstrap failure on ppc64-linux: ICE in set_va...
9 msgAda rts fails to build on ppc64?
4 msgOnline Job Representative Staff
3 msgDefine __NO_MATH_INLINES for x86 -ffast-math?
1 msglibstdc++-v3/include/precompiled weirdness
2 msgShould -ftrapv check type conversion?
2 msgTrap floating-point exceptions?
6 msgCoding conventions -- command line option vs co...
1 msgLegal Experts Directory
2 msgQuestion about rs6000 zero_fp_constant predicate
1 msgNvidia PTX backend
1 msgNew GCC ICI (with plug-ins for dynamic pass reo...
1 msg__if_exists __if_not_exists alternative
1 msgHaunted Halloween fun at Mountain Village 1890!
Subject:Re: porting problem again: ICE in add_clobbers
Group:Gcc
From:Jim Wilson
Date:22 Sep 2007


Tomas Svensson wrote:
> On 19 Sep 2007 07:54:14 -0700, Ian Lance Taylor <iant> wrote:
>> gcse will never convert a recognizable insn into an unrecognizable
>> insn.
> Ok. Do you know of any other reasons why this particular optimization
> switch would cause this problem?

There are millions of reasons why there might be a problem. You need to
do some debugging to analyze the problem. I think the fact that gcse
create an insn that caused combine to choke is probably not relevant.
Step through combine to see what is going on. add_clobbers should only
be called for an insn number that contains clobbers. This is
conditional on num_clobbers_to_add, which is set in a recog() call. So
step through recog to see why it is being set. This is the variable
pnum_clobbers in recog, in the file insn-recog.c. insn-recog.c is
created by genrecog.c, but you want to look there only as a last resort.
No one else can do this analysis for you as no one else has a copy of
your port.

> But this should not need a matching insn, since it ends in a DONE;,
> right? Or am I missing something again?

This is correct. You need a define_insn to match all RTL emitted during
the RTL expansion phase. However, when you have a define_expand which
uses a minimal RTL template just to indicate the number of operands, and
which does not actually emit this RTL template into any insn, then you
do not need a define_insn to match this RTL template. You do need a
define_insn to match the RTL emitted by the expand_branch function though.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com


© 2004-2008 readlist.com