public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* GCC 4.3.0 Status Report (2007-09-04)
@ 2007-09-05  2:40 Mark Mitchell
  2007-09-05  3:24 ` DJ Delorie
                   ` (10 more replies)
  0 siblings, 11 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-05  2:40 UTC (permalink / raw)
  To: GCC

Summary
=======

We are closing in on Stage 3, previously announced for September 10th.
At this point, I'm not aware of any reason to delay that date.  Are
there any Stage 2 patches that people don't think will be submitted by
that point?

Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
to either (a) convince someone to review them, or (b) review them myself.

Quality
=======

Priority   #
--------  ---
P1         43
P2        118
P3          4
Total     165

Obviously, that's rather more P1s than we'd like.  As I mentioned in my
previous status report, of particular concern is that we've got a lot of
4.3-only P1s.  I'm sure many of those won't be too hard to fix, but we
still need to go and fix them.

I'm concerned about getting into a situation where we say "well, 4.2 has
some bugs, but all of those are fixed in 4.3" and then realize that "oh,
well, 4.3 has different bugs too, but those are all fixed in 4.4" and so
forth.

Previous Report
===============

http://gcc.gnu.org/ml/gcc/2007-08/msg00181.html

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
@ 2007-09-05  3:24 ` DJ Delorie
  2007-09-05  3:35   ` Mark Mitchell
  2007-09-06  8:29 ` Richard Guenther
                   ` (9 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: DJ Delorie @ 2007-09-05  3:24 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: gcc


Mark Mitchell <mark@codesourcery.com> writes:
> Are there Stage 1 or Stage 2 patches in need of review?

Do you want the diagnostic pragma push/pop patch in?

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  3:24 ` DJ Delorie
@ 2007-09-05  3:35   ` Mark Mitchell
  2007-09-05  3:50     ` DJ Delorie
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-05  3:35 UTC (permalink / raw)
  To: DJ Delorie; +Cc: gcc

DJ Delorie wrote:
> Mark Mitchell <mark@codesourcery.com> writes:
>> Are there Stage 1 or Stage 2 patches in need of review?
> 
> Do you want the diagnostic pragma push/pop patch in?

In, if it works. :-)  URL, please?

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  3:35   ` Mark Mitchell
@ 2007-09-05  3:50     ` DJ Delorie
  2007-09-05 22:25       ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: DJ Delorie @ 2007-09-05  3:50 UTC (permalink / raw)
  To: mark; +Cc: gcc


> In, if it works. :-)

Well, it does what it's supposed to do.  Whether that's a "works" in
the grand scheme of things is still debatable :-)

I'd still need to write testcases and a changelog, as I was posing it
as a what-if-example so far.

Also, we still don't guarantee proper operation in all cases if you
change diagnostics after defining a function.  That will have to wait
until we have the single-int-location thing.

Also, we never decided if "undo" was worth the extra overhead.  The
code is in the patch, but ifdef'd out.

> URL, please?

http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01317.html

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  3:50     ` DJ Delorie
@ 2007-09-05 22:25       ` Mark Mitchell
  2007-09-05 22:32         ` DJ Delorie
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-05 22:25 UTC (permalink / raw)
  To: DJ Delorie; +Cc: gcc

DJ Delorie wrote:

> Also, we never decided if "undo" was worth the extra overhead.  The
> code is in the patch, but ifdef'd out.
> 
>> URL, please?
> 
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01317.html

It looks to me like this probably isn't quite ready for prime-time; I do
think we'd want to make the push/pop stuff fully reliable, including
warnings emitted from the middle-end.  That's not an over-my-dead-body;
if other people feel differently, I'm happy to discuss.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05 22:25       ` Mark Mitchell
@ 2007-09-05 22:32         ` DJ Delorie
  0 siblings, 0 replies; 49+ messages in thread
From: DJ Delorie @ 2007-09-05 22:32 UTC (permalink / raw)
  To: mark; +Cc: gcc


> It looks to me like this probably isn't quite ready for prime-time;
> I do think we'd want to make the push/pop stuff fully reliable,
> including warnings emitted from the middle-end.

push-pop around functions won't be reliable until we have the file
location thing, so we can map a file:line to a point in the chain of
changes to the diagnostic classification tree.  This is no different
than our current disclaimer that pragma diagnostic changes after the
first function definition are not supported.

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
  2007-09-05  3:24 ` DJ Delorie
@ 2007-09-06  8:29 ` Richard Guenther
  2007-09-06  9:06   ` Paolo Bonzini
  2007-09-09 19:44   ` Mark Mitchell
  2007-09-06  9:18 ` Manuel López-Ibáñez
                   ` (8 subsequent siblings)
  10 siblings, 2 replies; 49+ messages in thread
From: Richard Guenther @ 2007-09-06  8:29 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

On 9/5/07, Mark Mitchell <mark@codesourcery.com> wrote:
> Summary
> =======
>
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
>
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.

There is

http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01978.html

for example, which is not suitable for stage3.

Richard.

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06  8:29 ` Richard Guenther
@ 2007-09-06  9:06   ` Paolo Bonzini
  2007-09-06  9:12     ` Richard Guenther
  2007-09-09 19:44   ` Mark Mitchell
  1 sibling, 1 reply; 49+ messages in thread
From: Paolo Bonzini @ 2007-09-06  9:06 UTC (permalink / raw)
  To: gcc


> There is
> 
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01978.html
> 
> for example, which is not suitable for stage3.

As much as I like the idea, wasn't get_non_trapping considered unsafe?

Paolo

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06  9:06   ` Paolo Bonzini
@ 2007-09-06  9:12     ` Richard Guenther
  0 siblings, 0 replies; 49+ messages in thread
From: Richard Guenther @ 2007-09-06  9:12 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: gcc

On 9/6/07, Paolo Bonzini <bonzini@gnu.org> wrote:
>
> > There is
> >
> > http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01978.html
> >
> > for example, which is not suitable for stage3.
>
> As much as I like the idea, wasn't get_non_trapping considered unsafe?

Only if you tried to preserve this information across passes.  This updated
patch computes this information just for the local transformation.

Richard.

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
  2007-09-05  3:24 ` DJ Delorie
  2007-09-06  8:29 ` Richard Guenther
@ 2007-09-06  9:18 ` Manuel López-Ibáñez
  2007-09-06 17:33   ` Fu, Chao-Ying
  2007-09-06 12:35 ` Jan Hubicka
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: Manuel López-Ibáñez @ 2007-09-06  9:18 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, Chao-ying Fu

On 05/09/07, Mark Mitchell <mark@codesourcery.com> wrote:
> Summary
> =======
>
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
>
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.
>

The patches to make the new -Wconversion work with decimal float types
are still pending review.
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01356.html

Unfortunately, even if I could skip sleep for one night to get some
extra time, I won't have the means needed to test them, update them to
current trunk or commit them before Sep 10th. Perhaps in two or three
weeks I could...

By the way, have the patches for FixedPointArithmetic added
Wconversion support? I guess that will make the patches above to not
apply cleanly anymore.

Cheers,

Manuel.

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (2 preceding siblings ...)
  2007-09-06  9:18 ` Manuel López-Ibáñez
@ 2007-09-06 12:35 ` Jan Hubicka
  2007-09-09 19:45   ` Mark Mitchell
  2007-09-06 13:38 ` Sebastian Pop
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: Jan Hubicka @ 2007-09-06 12:35 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

> Summary
> =======
> 
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?

I am still planning to do some retuning of inliner (our inline limits
wasn't revisited for inclusion of SSA optimizers).  I am now waiting on
Diego to decide on
http://gcc.gnu.org/ml/gcc-patches/2007-02/msg00318.html
that makes the metrics looks quite significandly different.  Then I will
run few tests on our C++/SPEC tester in hope that we can now
significandly cut some of the limits previously pushed up by the tests
with large abstraction (DLV/Tramp3d) and speedup compilation/reduce
binaries.  It will probably take more than 2 days, but I hope it is
acceptable for early stage3. I will be on conference from 10th to 16th,
but I expect to be able to do the benchmarking needed.

Honza

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (3 preceding siblings ...)
  2007-09-06 12:35 ` Jan Hubicka
@ 2007-09-06 13:38 ` Sebastian Pop
  2007-09-06 17:53   ` Jagasia, Harsha
  2007-09-07 14:50 ` Martin Jambor
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: Sebastian Pop @ 2007-09-06 13:38 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

On 9/4/07, Mark Mitchell <mark@codesourcery.com> wrote:
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
>

I still plan to submit the loop distribution pass.

Sebastian

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

* RE: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06  9:18 ` Manuel López-Ibáñez
@ 2007-09-06 17:33   ` Fu, Chao-Ying
  0 siblings, 0 replies; 49+ messages in thread
From: Fu, Chao-Ying @ 2007-09-06 17:33 UTC (permalink / raw)
  To: Manuel López-Ibáñez, Mark Mitchell; +Cc: GCC

Manuel López-Ibáñez wrote:
> 
> On 05/09/07, Mark Mitchell <mark@codesourcery.com> wrote:
> > Summary
> > =======
> >
> > We are closing in on Stage 3, previously announced for 
> September 10th.
> > At this point, I'm not aware of any reason to delay that date.  Are
> > there any Stage 2 patches that people don't think will be 
> submitted by
> > that point?
> >
> > Are there Stage 1 or Stage 2 patches in need of review?  
> I'll do my best
> > to either (a) convince someone to review them, or (b) 
> review them myself.
> >
> 
> The patches to make the new -Wconversion work with decimal float types
> are still pending review.
> http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01356.html
> 
> Unfortunately, even if I could skip sleep for one night to get some
> extra time, I won't have the means needed to test them, update them to
> current trunk or commit them before Sep 10th. Perhaps in two or three
> weeks I could...
> 
> By the way, have the patches for FixedPointArithmetic added
> Wconversion support? I guess that will make the patches above to not
> apply cleanly anymore.

  Not yet.  After I get the remaining patches (7, 8, 9, 10) checked in,
I will see how much work is needed to support Wconversion 
for fixed-point types.  Thanks!

Regards,
Chao-ying

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

* RE: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06 13:38 ` Sebastian Pop
@ 2007-09-06 17:53   ` Jagasia, Harsha
  2007-09-09 19:46     ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: Jagasia, Harsha @ 2007-09-06 17:53 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, Sebastian Pop, Sjodin, Jan

>On 9/4/07, Mark Mitchell <mark@codesourcery.com> wrote:
>> We are closing in on Stage 3, previously announced for September
10th.
>> At this point, I'm not aware of any reason to delay that date.  Are
>> there any Stage 2 patches that people don't think will be submitted
by
>> that point?
>>

I still plan to submit a patch for the x86 target cost model tuning. 

Harsha


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (4 preceding siblings ...)
  2007-09-06 13:38 ` Sebastian Pop
@ 2007-09-07 14:50 ` Martin Jambor
  2007-09-09 18:43   ` Mark Mitchell
  2007-09-08 12:14 ` Rask Ingemann Lambertsen
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: Martin Jambor @ 2007-09-07 14:50 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

Hi,

On Tue, Sep 04, 2007 at 07:40:19PM -0700, Mark Mitchell wrote:
> Summary
> =======
> 
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
> 
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.

Well, there's mine :-) Specifically, its the "Switch initializations
conversion:" http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00215.html

Jakub Jelinek had a few comments  and I changed the patch according to
them. After that,  nothing much happened. If any  maintainer likes the
patch, please commit it as I do not have write access to svn. OTOH, if
there are any further concerns, please let me know.

Sorry for a late reply, I lagged behind the mailing list for a few
days.

Thanks,

Martin

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (5 preceding siblings ...)
  2007-09-07 14:50 ` Martin Jambor
@ 2007-09-08 12:14 ` Rask Ingemann Lambertsen
  2007-09-09 18:55   ` Mark Mitchell
  2007-09-10 13:25 ` Jakub Jelinek
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: Rask Ingemann Lambertsen @ 2007-09-08 12:14 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

On Tue, Sep 04, 2007 at 07:40:19PM -0700, Mark Mitchell wrote:
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.

http://gcc.gnu.org/ml/gcc-patches/2007-08/msg02217.html

It's blocking work on the additional optimization requested by the
"customer" in comment 11:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30315#c11

-- 
Rask Ingemann Lambertsen

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-07 14:50 ` Martin Jambor
@ 2007-09-09 18:43   ` Mark Mitchell
  2007-09-10 19:01     ` Martin Jambor
  2007-09-25 19:49     ` Martin Jambor
  0 siblings, 2 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-09 18:43 UTC (permalink / raw)
  To: Mark Mitchell, GCC

Martin Jambor wrote:

> Well, there's mine :-) Specifically, its the "Switch initializations
> conversion:" http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00215.html

Do you have an FSF copyright assignment on file?  This patch is big
enough that we would not be able to include it without that.

> Jakub Jelinek had a few comments  and I changed the patch according to
> them. After that,  nothing much happened. If any  maintainer likes the
> patch, please commit it as I do not have write access to svn. OTOH, if
> there are any further concerns, please let me know.

I see one technical change that should be made.  In particular, please
change:

> +/* We never create arrays larger than the following constant (given in number
> +   of elements).  */
> +#define MAX_ARRAY_RANGE 0x2000
> +
> +/* We never create arrays  if the number of branches is not  at least the range
> +   divided by the following constant.  */
> +#define MAX_RANGE_BRANCH_RATIO 8

to use the --param mechanism.  Our policy is to have *no* magic numbers
for these kinds of things.  It's easy enough to allow users to use
--param to set the values, and that makes it easy for people (often the
compiler developers themselves) to experiment with the values to help
fine-tune the defaults.

Other than that, the patch looks pretty good to me.  However, I'd like a
middle-end maintainer to review the patch.  Ian, Diego, Roger, would one
of you please take a look?

Is there any reason to think this patch might generate worse code on
some processors or in some modes?  For example, while this patch seems
it's definitely a code-size win for dense switch statements, do we need
some kind of cost model to tell us whether it's a code-size win with
less dense switch statements?  Do we want want separate params when
we're operating under -Os from when we're operating under -O2?

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-08 12:14 ` Rask Ingemann Lambertsen
@ 2007-09-09 18:55   ` Mark Mitchell
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-09 18:55 UTC (permalink / raw)
  To: Rask Ingemann Lambertsen; +Cc: GCC

Rask Ingemann Lambertsen wrote:
> On Tue, Sep 04, 2007 at 07:40:19PM -0700, Mark Mitchell wrote:
>> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
>> to either (a) convince someone to review them, or (b) review them myself.
> 
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg02217.html

This patch is OK.

There may be machine descriptions that, for whatever reason, only do
something clever with "a + b < b"; they will now lose.  But, those
machine descriptions were odd anyhow; logically, they should handle both
"a + b < a" and "a + b < b" the same way.

So, your patch seems like a good improvement; as you say, it gives the
back end fewer cases to optimize.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06  8:29 ` Richard Guenther
  2007-09-06  9:06   ` Paolo Bonzini
@ 2007-09-09 19:44   ` Mark Mitchell
  2007-09-09 21:11     ` Roger Sayle
  1 sibling, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-09 19:44 UTC (permalink / raw)
  To: Richard Guenther; +Cc: GCC, Ian Lance Taylor, Roger Sayle, Diego Novillo

Richard Guenther wrote:

> There is
> 
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01978.html
> 
> for example, which is not suitable for stage3.

This is an optimization pass which leads to dramatically better code on
at least one SPEC benchmark.  Ian, Roger, Diego, would one of you care
to review this?

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06 12:35 ` Jan Hubicka
@ 2007-09-09 19:45   ` Mark Mitchell
  2007-09-10  1:19     ` Jan Hubicka
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-09 19:45 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: GCC

Jan Hubicka wrote:

> I am still planning to do some retuning of inliner (our inline limits
> wasn't revisited for inclusion of SSA optimizers).

Assuming that the tuning is essentially twiddling constants, I'm not
overly worried.  If you're planning to adjust the algorithms
substantially, then I'd be more concerned.  Let me know.

Thanks!

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-06 17:53   ` Jagasia, Harsha
@ 2007-09-09 19:46     ` Mark Mitchell
  2007-09-10 16:04       ` Jagasia, Harsha
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-09 19:46 UTC (permalink / raw)
  To: Jagasia, Harsha; +Cc: GCC, Sebastian Pop, Sjodin, Jan

Jagasia, Harsha wrote:

> I still plan to submit a patch for the x86 target cost model tuning. 

Assuming that this isn't too dramatic, I'll leave approval of that
during Stage 3 to the x86 back-end maintainers.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 19:44   ` Mark Mitchell
@ 2007-09-09 21:11     ` Roger Sayle
  2007-09-09 21:19       ` Richard Guenther
  0 siblings, 1 reply; 49+ messages in thread
From: Roger Sayle @ 2007-09-09 21:11 UTC (permalink / raw)
  To: Mark Mitchell, Richard Guenther, Michael Matz
  Cc: GCC, Ian Lance Taylor, Diego Novillo


> This is an optimization pass which leads to dramatically better code on

> at least one SPEC benchmark.  Ian, Roger, Diego, would one of you care
> to review this?

My concern is that as formulated, conditional store elimination is not 
always a win.

Transforming

    if (cond)
      *p = x;

into

  tmp = *p;
  if (cond)
    tmp = x;
  *p = tmp;

on it's own, effectively transforms a conditional write to memory into an 
unconditional write to memory.
On many platforms, even x86, this a pessimization.  For example, the "Intel 
Architecture Optimization Manual", available at 
ftp://download.intel.com/design/PentiumII/manuals/24281603.PDF in section 
3.5.5 "Write Allocation Effects", actually recommends the inverse 
transformation.  On page 3-21 they show how the "Sieve of Erastothenes" 
benchmark can be sped up on Pentium class processors by transforming the 
line

    array[j] = 0;

into the equivalent

    if (array[j] != 0)
      array[j] = 0;

i.e. by introducing conditional stores.


The significant observation with Michael Matz's extremely impressive 26% 
improvement on 456.hmmer is the interaction between this transformation with 
other passes, that allow the conditional store to be hoisted out of a 
critical loop.  By reading the value into a "tmp" before the loop, 
conditionally storing to the register tmp in the loop, then unconditionally 
writing the result back afterwards, we dramatically reduce the number of 
memory writes, rather than increase them as when this transformation is 
applied in isolation.


I think the correct fix is not to apply this transformation everywhere, but 
to correctly identify those loop cases where it helps and perform the loop 
transformation there.  i.e. conditional induction variable identification, 
hoisting and sinking needs to be improved instead of pessimizing code to a 
simpler form that allows our existing flawed passes to trigger.


I do very much like the loop-restricted version of this transformation, and 
it's impressive impact of HMMR (whose author Sean Eddy is a good friend). 
Perhaps Mark might give revised versions of this patch special dispensation 
to be applied in stage 3.  I'd not expect any correctness issues/bugs, just 
performance trade-offs that need to be investigated.  Perhaps we should even 
apply this patch as is during stage 2, and allow the potential non-loop 
performance degradations to be addressed as follow-up patches and therefore 
regression fixes suitable for stage 3?

Congratulations again to Michael for this impressive performance 
improvement.

Roger
--
Roger Sayle, Ph.D.
OpenEye Scientific Software,
Suite #D, 9 Bisbee Court,
Santa Fe, New Mexico, 87508.

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 21:11     ` Roger Sayle
@ 2007-09-09 21:19       ` Richard Guenther
  2007-09-09 21:30         ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: Richard Guenther @ 2007-09-09 21:19 UTC (permalink / raw)
  To: Roger Sayle
  Cc: Mark Mitchell, Michael Matz, GCC, Ian Lance Taylor, Diego Novillo

On 9/9/07, Roger Sayle <roger@eyesopen.com> wrote:
>
> > This is an optimization pass which leads to dramatically better code on
>
> > at least one SPEC benchmark.  Ian, Roger, Diego, would one of you care
> > to review this?

Btw, diego already approved the patch.

> My concern is that as formulated, conditional store elimination is not
> always a win.
>
> Transforming
>
>     if (cond)
>       *p = x;
>
> into
>
>   tmp = *p;
>   if (cond)
>     tmp = x;
>   *p = tmp;
>
> on it's own, effectively transforms a conditional write to memory into an
> unconditional write to memory.

The pass currently only does the transformation if there is a preceding
load already.  Because I raised this same issue ;)

> On many platforms, even x86, this a pessimization.  For example, the "Intel
> Architecture Optimization Manual", available at
> ftp://download.intel.com/design/PentiumII/manuals/24281603.PDF in section
> 3.5.5 "Write Allocation Effects", actually recommends the inverse
> transformation.  On page 3-21 they show how the "Sieve of Erastothenes"
> benchmark can be sped up on Pentium class processors by transforming the
> line
>
>     array[j] = 0;
>
> into the equivalent
>
>     if (array[j] != 0)
>       array[j] = 0;
>
> i.e. by introducing conditional stores.

I suppose this is no longer true on modern processors?  I think the
pass may undo this case.  But I'm also not sure we should worry about
this.

> The significant observation with Michael Matz's extremely impressive 26%
> improvement on 456.hmmer is the interaction between this transformation with
> other passes, that allow the conditional store to be hoisted out of a
> critical loop.  By reading the value into a "tmp" before the loop,
> conditionally storing to the register tmp in the loop, then unconditionally
> writing the result back afterwards, we dramatically reduce the number of
> memory writes, rather than increase them as when this transformation is
> applied in isolation.
>
>
> I think the correct fix is not to apply this transformation everywhere, but
> to correctly identify those loop cases where it helps and perform the loop
> transformation there.  i.e. conditional induction variable identification,
> hoisting and sinking needs to be improved instead of pessimizing code to a
> simpler form that allows our existing flawed passes to trigger.
>
>
> I do very much like the loop-restricted version of this transformation, and
> it's impressive impact of HMMR (whose author Sean Eddy is a good friend).
> Perhaps Mark might give revised versions of this patch special dispensation
> to be applied in stage 3.  I'd not expect any correctness issues/bugs, just
> performance trade-offs that need to be investigated.  Perhaps we should even
> apply this patch as is during stage 2, and allow the potential non-loop
> performance degradations to be addressed as follow-up patches and therefore
> regression fixes suitable for stage 3?

I think it should be straight forward to apply this transformation in loops
only - requiring analysis that the resulting loads and stores are loop
invariant would of course require more work.

Given the above restriction we apply already, do you hold your
objections or would you consider the "simple" loop improvement?

Thanks,
Richard.

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 21:19       ` Richard Guenther
@ 2007-09-09 21:30         ` Mark Mitchell
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-09 21:30 UTC (permalink / raw)
  To: Richard Guenther
  Cc: Roger Sayle, Michael Matz, GCC, Ian Lance Taylor, Diego Novillo

Richard Guenther wrote:
> On 9/9/07, Roger Sayle <roger@eyesopen.com> wrote:
>>> This is an optimization pass which leads to dramatically better code on
>>> at least one SPEC benchmark.  Ian, Roger, Diego, would one of you care
>>> to review this?
> 
> Btw, diego already approved the patch.

I apologize for muddying the waters, then.  Roger, thank you for reviewing.

I'll leave Richard G., Roger, and Diego to work out what best to do;
please let me know if I can help.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 19:45   ` Mark Mitchell
@ 2007-09-10  1:19     ` Jan Hubicka
  0 siblings, 0 replies; 49+ messages in thread
From: Jan Hubicka @ 2007-09-10  1:19 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: Jan Hubicka, GCC

> Jan Hubicka wrote:
> 
> > I am still planning to do some retuning of inliner (our inline limits
> > wasn't revisited for inclusion of SSA optimizers).
> 
> Assuming that the tuning is essentially twiddling constants, I'm not
> overly worried.  If you're planning to adjust the algorithms
> substantially, then I'd be more concerned.  Let me know.

Thanks, the plan is to essentially twiddle the constants (reduce limits
since we now see more realistic program estimates).

There is similar situation with the currently discussed SSE conversion
codegen - I've comitted the basic codegen changes today, but we need to
run some benchmarks to figure out setting for generic model.  I hope
this would be acceptable too... CPU2006 takes a lot of time :(

Honza

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (6 preceding siblings ...)
  2007-09-08 12:14 ` Rask Ingemann Lambertsen
@ 2007-09-10 13:25 ` Jakub Jelinek
  2007-09-11  3:50   ` Mark Mitchell
  2007-09-10 16:20 ` Peter Bergner
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 49+ messages in thread
From: Jakub Jelinek @ 2007-09-10 13:25 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

On Tue, Sep 04, 2007 at 07:40:19PM -0700, Mark Mitchell wrote:
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
> 
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.

I have a bunch of tiny patches, nevertheless all Stage 2 material, as
they add new features:

__artificial__ attribute (except the builtins.c hunk which is addressed
differently):
http://gcc.gnu.org/ml/gcc-patches/2007-08/msg02300.html

__builtin_va_arg_pack_len () addition:
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00675.html

redundant zero store elimination optimization (simplistic version,
but nevertheless is able to trigger many times during gcc bootstrap):
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00663.html

diagnostic changes to print virtual call stack:
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00868.html

__error_decl__ and __warning_decl__ attributes:
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00876.html

	Jakub

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

* RE: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 19:46     ` Mark Mitchell
@ 2007-09-10 16:04       ` Jagasia, Harsha
  0 siblings, 0 replies; 49+ messages in thread
From: Jagasia, Harsha @ 2007-09-10 16:04 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, Sebastian Pop, Sjodin, Jan

>Jagasia, Harsha wrote:
>
>> I still plan to submit a patch for the x86 target cost model tuning.
>
>Assuming that this isn't too dramatic, I'll leave approval of that
>during Stage 3 to the x86 back-end maintainers.

Thanks.

The patch involves some x86 back-end bits, which Honza has already
approved and some fixes to the vectorizer, which Dorit has mostly
approved (I am waiting on her approval for my last mail).

My plan is to submit the patch today with the changes Dorit has
recommended.
I may end up splitting it such that most of the patch makes it today and
one bug fix for the vectorizer makes it in stage 3.

>Thanks,
>
>--
>Mark Mitchell
>CodeSourcery
>mark@codesourcery.com
>(650) 331-3385 x713
>



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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (7 preceding siblings ...)
  2007-09-10 13:25 ` Jakub Jelinek
@ 2007-09-10 16:20 ` Peter Bergner
  2007-09-11  3:57   ` Mark Mitchell
  2007-09-10 16:37 ` Michael Meissner
  2007-09-12 12:26 ` Ramana Radhakrishnan
  10 siblings, 1 reply; 49+ messages in thread
From: Peter Bergner @ 2007-09-10 16:20 UTC (permalink / raw)
  To: Mark Mitchell
  Cc: GCC, Seongbae Park (박성배, 朴成培)

On Tue, 2007-09-04 at 19:40 -0700, Mark Mitchell wrote:
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.

It has only been four days since I posted the patch, but I am
waiting for a review of the new interference graph representation:

  http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00529.html

In addition to the powerpc64-linux bootstrap and regtesting I
did, Seongbae bootstrapped and regtested this on x86_64 with
no regressions as well as running it on SPEC with no runtime
or compile time regressions.

Peter




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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (8 preceding siblings ...)
  2007-09-10 16:20 ` Peter Bergner
@ 2007-09-10 16:37 ` Michael Meissner
  2007-09-13 18:37   ` Mark Mitchell
  2007-09-12 12:26 ` Ramana Radhakrishnan
  10 siblings, 1 reply; 49+ messages in thread
From: Michael Meissner @ 2007-09-10 16:37 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

On Tue, Sep 04, 2007 at 07:40:19PM -0700, Mark Mitchell wrote:
> Summary
> =======
> 
> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
> 
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.
> 
> Quality
> =======
> 
> Priority   #
> --------  ---
> P1         43
> P2        118
> P3          4
> Total     165
> 
> Obviously, that's rather more P1s than we'd like.  As I mentioned in my
> previous status report, of particular concern is that we've got a lot of
> 4.3-only P1s.  I'm sure many of those won't be too hard to fix, but we
> still need to go and fix them.
> 
> I'm concerned about getting into a situation where we say "well, 4.2 has
> some bugs, but all of those are fixed in 4.3" and then realize that "oh,
> well, 4.3 has different bugs too, but those are all fixed in 4.4" and so
> forth.

One patch that got dropped on the floor was my patch to remove the dependency
in the back ends of the way arguments are encoded, so that eventually for LTO
we can swtich to using a vector instead of linked list.  As I recall, I had
fixed all backends except for the SPU, which I needed to investigate the
builtins.  Now that SSE5 is winding down, I can go back to this patch.  Given
it has been reviewed in this list, I will leave it to Mark to decide whether it
should go into 4.3 or 4.4.

-- 
Michael Meissner, AMD
90 Central Street, MS 83-29, Boxborough, MA, 01719, USA
michael.meissner@amd.com


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 18:43   ` Mark Mitchell
@ 2007-09-10 19:01     ` Martin Jambor
  2007-09-25 19:49     ` Martin Jambor
  1 sibling, 0 replies; 49+ messages in thread
From: Martin Jambor @ 2007-09-10 19:01 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

Hi,

thanks for looking at the patch.

On Sun, Sep 09, 2007 at 11:42:55AM -0700, Mark Mitchell wrote:
> Martin Jambor wrote:
> 
> > Well, there's mine :-) Specifically, its the "Switch initializations
> > conversion:" http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00215.html
> 
> Do you have an FSF copyright assignment on file?  This patch is big
> enough that we would not be able to include it without that.

Yes, I do, see http://misc.jamborm.net/Jambor305799.pdf

> I see one technical change that should be made.  In particular, please
> change:
> 
> > +/* We never create arrays larger than the following constant (given in number
> > +   of elements).  */
> > +#define MAX_ARRAY_RANGE 0x2000
> > +
> > +/* We never create arrays  if the number of branches is not  at least the range
> > +   divided by the following constant.  */
> > +#define MAX_RANGE_BRANCH_RATIO 8
> 
> to use the --param mechanism.  Our policy is to have *no* magic numbers
> for these kinds of things.  It's easy enough to allow users to use
> --param to set the values, and that makes it easy for people (often the
> compiler developers themselves) to experiment with the values to help
> fine-tune the defaults.

OK, I have changed the patch accordingly (and added some documentation
that was missing  last time) and am currently  re-testing it. I expect
to post the new version to the list tonight.

Martin

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-10 13:25 ` Jakub Jelinek
@ 2007-09-11  3:50   ` Mark Mitchell
  2007-09-12 11:02     ` Kai Tietz
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-11  3:50 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: GCC

Jakub Jelinek wrote:

> I have a bunch of tiny patches, nevertheless all Stage 2 material, as
> they add new features:

I'd like a middle-end maintainer to review this one:

> redundant zero store elimination optimization (simplistic version,
> but nevertheless is able to trigger many times during gcc bootstrap):
> http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00663.html

That seems like a nice optimization.  It was interesting to see how many
places this hit in GCC.  I didn't see any data about performance
improvements on benchmarks (e.g., SPEC), or code-size improvements
(e.g., CSiBE), but it sure can't hurt.

Unfortunately, I think there are enough issues around most of the rest
of these patches that we should wait for 4.4.  In particular, all of these:

> __artificial__ attribute (except the builtins.c hunk which is addressed
> differently):
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg02300.html
> 
> __builtin_va_arg_pack_len () addition:
> http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00675.html
> 
> __error_decl__ and __warning_decl__ attributes:
> http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00876.html

add extensions of one kind or another to GCC, and there has been some
discussion about each of them.  I think we have to be very careful with
these things; once they go out in a release, we live with them forever.

However, I do hereby acknowledge that these were submitted before Stage
2 ended, and, as per our guidelines, if these patches are approved, they
can still go in.

This one:

> diagnostic changes to print virtual call stack:
> http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00868.html

looks like it would have a major effect on consumers of GCC output.  As
you say:

> The tools that parse this will need changing anyway to do something
> reasonable with it

I think we should consider GCC diagnostic a defined, machine-readable
format and that we should modify it only in backwards-compatible ways.
Or, make incompatible changes only under control of an option or
environment variable.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-10 16:20 ` Peter Bergner
@ 2007-09-11  3:57   ` Mark Mitchell
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-11  3:57 UTC (permalink / raw)
  To: Peter Bergner; +Cc: GCC, "Seongbae Park (???, ???)"

Peter Bergner wrote:
> On Tue, 2007-09-04 at 19:40 -0700, Mark Mitchell wrote:
>> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
>> to either (a) convince someone to review them, or (b) review them myself.
> 
> It has only been four days since I posted the patch, but I am
> waiting for a review of the new interference graph representation:
> 
>   http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00529.html

This certainly seems an excellent thing.  If nobody else reviews this, I
will do so -- but I hope that one of our busy middle-end maintainers
will make time.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-11  3:50   ` Mark Mitchell
@ 2007-09-12 11:02     ` Kai Tietz
  2007-09-13  6:03       ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: Kai Tietz @ 2007-09-12 11:02 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, Jan Hubicka

I have two patch may be worth to enter into 4.3 at stage 2.
Jan and I tried to ping the first part now about some time and we didn't 
got a comment or approval for them.

See
http://www.nabble.com/-PING%5E2-PATCH-%3A-Preparations-for-SYSV-MS-ABI-attributes-in-backend-tf4414541.html
http://www.nabble.com/-PATCH-%3A-Implementation-for-SYSV-MS-ABI-attributes-in-i386-may-before-stage--3-tf4428449.html

Cheers,
 i.A. Kai Tietz

|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer: 
Ulrike Döhler, Manuela Kluger

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
                   ` (9 preceding siblings ...)
  2007-09-10 16:37 ` Michael Meissner
@ 2007-09-12 12:26 ` Ramana Radhakrishnan
  2007-09-13 18:39   ` Mark Mitchell
  10 siblings, 1 reply; 49+ messages in thread
From: Ramana Radhakrishnan @ 2007-09-12 12:26 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, ramana.radhakrishnan

Hi,

I apologize for the late response to your mail but I sort of did these
patches up recently .

I have a couple of patches that I submitted / intend to submit . One
of them was submitted today regarding a small improvement to the
auto-increment pass. I am not sure if this is suitable for stage3 if
it is approved.

http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01060.html

The other patch that we have for submission is relatively trivial and
tries to be more precise with size costs for builtins while inlining.
I guess that should be alright for stage3  .

cheers
Ramana




> We are closing in on Stage 3, previously announced for September 10th.
> At this point, I'm not aware of any reason to delay that date.  Are
> there any Stage 2 patches that people don't think will be submitted by
> that point?
>
> Are there Stage 1 or Stage 2 patches in need of review?  I'll do my best
> to either (a) convince someone to review them, or (b) review them myself.
>
> Quality
> =======
>
> Priority   #
> --------  ---
> P1         43
> P2        118
> P3          4
> Total     165
>
> Obviously, that's rather more P1s than we'd like.  As I mentioned in my
> previous status report, of particular concern is that we've got a lot of
> 4.3-only P1s.  I'm sure many of those won't be too hard to fix, but we
> still need to go and fix them.
>
> I'm concerned about getting into a situation where we say "well, 4.2 has
> some bugs, but all of those are fixed in 4.3" and then realize that "oh,
> well, 4.3 has different bugs too, but those are all fixed in 4.4" and so
> forth.
>
> Previous Report
> ===============
>
> http://gcc.gnu.org/ml/gcc/2007-08/msg00181.html
>
> --
> Mark Mitchell
> CodeSourcery
> mark@codesourcery.com
> (650) 331-3385 x713
>


-- 
Ramana Radhakrishnan

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-12 11:02     ` Kai Tietz
@ 2007-09-13  6:03       ` Mark Mitchell
  2007-09-13  8:46         ` Jan Hubicka
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-13  6:03 UTC (permalink / raw)
  To: Kai Tietz; +Cc: GCC, Jan Hubicka

Kai Tietz wrote:

> See
> http://www.nabble.com/-PING%5E2-PATCH-%3A-Preparations-for-SYSV-MS-ABI-attributes-in-backend-tf4414541.html
> http://www.nabble.com/-PATCH-%3A-Implementation-for-SYSV-MS-ABI-attributes-in-i386-may-before-stage--3-tf4428449.html

Thanks for letting me know.  I'm going to leave this to the x86 back-end
maintainers.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13  6:03       ` Mark Mitchell
@ 2007-09-13  8:46         ` Jan Hubicka
  2007-09-13 18:42           ` Michael Meissner
  2007-09-13 18:42           ` Mark Mitchell
  0 siblings, 2 replies; 49+ messages in thread
From: Jan Hubicka @ 2007-09-13  8:46 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: Kai Tietz, GCC, Jan Hubicka

> Kai Tietz wrote:
> 
> > See
> > http://www.nabble.com/-PING%5E2-PATCH-%3A-Preparations-for-SYSV-MS-ABI-attributes-in-backend-tf4414541.html
> > http://www.nabble.com/-PATCH-%3A-Implementation-for-SYSV-MS-ABI-attributes-in-i386-may-before-stage--3-tf4428449.html
> 
> Thanks for letting me know.  I'm going to leave this to the x86 back-end
> maintainers.

The changes are not completely trivial, but it is easy to verify that
the default path (ie compiling sources not using new attributes) remains
unchanged, so I would be happy to review the i386 specific patch after
returning at Monday. Given also fact that this seems important for wine
and other hybrid environments.

Global or middle end maintainer is needed for the first patch however.

Honza
> 
> Thanks,
> 
> -- 
> Mark Mitchell
> CodeSourcery
> mark@codesourcery.com
> (650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-10 16:37 ` Michael Meissner
@ 2007-09-13 18:37   ` Mark Mitchell
  2007-09-13 18:44     ` Meissner, Michael
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-13 18:37 UTC (permalink / raw)
  To: Michael Meissner, Mark Mitchell, GCC

Michael Meissner wrote:

> One patch that got dropped on the floor was my patch to remove the dependency
> in the back ends of the way arguments are encoded, so that eventually for LTO
> we can swtich to using a vector instead of linked list. 

I think that could still goto 4.3, since it's already largely been
reviewed.  But, of course, we do need to make sure all the targets work.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-12 12:26 ` Ramana Radhakrishnan
@ 2007-09-13 18:39   ` Mark Mitchell
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-13 18:39 UTC (permalink / raw)
  To: Ramana Radhakrishnan; +Cc: GCC, ramana.radhakrishnan

Ramana Radhakrishnan wrote:

> I have a couple of patches that I submitted / intend to submit . One
> of them was submitted today regarding a small improvement to the
> auto-increment pass. I am not sure if this is suitable for stage3 if
> it is approved.
> 
> http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01060.html

We know that auto-increment handling has gotten worse in GCC 4.2/4.3, so
if the relevant maintainers are happy with your patch from a technical
perspective, then I think it qualifies as a bug fix.

> The other patch that we have for submission is relatively trivial and
> tries to be more precise with size costs for builtins while inlining.
> I guess that should be alright for stage3  .

Yes, that sounds OK.

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13  8:46         ` Jan Hubicka
@ 2007-09-13 18:42           ` Michael Meissner
  2007-09-13 22:09             ` Joseph S. Myers
  2007-09-13 18:42           ` Mark Mitchell
  1 sibling, 1 reply; 49+ messages in thread
From: Michael Meissner @ 2007-09-13 18:42 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Mark Mitchell, Kai Tietz, GCC, Jan Hubicka, christophe.harl

On Thu, Sep 13, 2007 at 10:45:56AM +0200, Jan Hubicka wrote:
> > Kai Tietz wrote:
> > 
> > > See
> > > http://www.nabble.com/-PING%5E2-PATCH-%3A-Preparations-for-SYSV-MS-ABI-attributes-in-backend-tf4414541.html
> > > http://www.nabble.com/-PATCH-%3A-Implementation-for-SYSV-MS-ABI-attributes-in-i386-may-before-stage--3-tf4428449.html
> > 
> > Thanks for letting me know.  I'm going to leave this to the x86 back-end
> > maintainers.
> 
> The changes are not completely trivial, but it is easy to verify that
> the default path (ie compiling sources not using new attributes) remains
> unchanged, so I would be happy to review the i386 specific patch after
> returning at Monday. Given also fact that this seems important for wine
> and other hybrid environments.
> 
> Global or middle end maintainer is needed for the first patch however.

In the first patch, I am somewhat uncomfortable with changing RETURN_IN_MEMORY
and OUTGOING_REG_PARM_STACK_SPACE, by adding an additional parameter, and then
changing all of the targets.  It might be better to have new macros
(RETURN_IN_MEMORY_ABI, OUTGOING_REG_PARM_STACK_SPACE_ABI), and if the old macro
is defined, code the new macro calling the earlier macro.  This way you can
avoid changing the other backends.  Otherwise, you probably need to work with
each maintainer to make sure you haven't broken their code.

-- 
Michael Meissner, AMD
90 Central Street, MS 83-29, Boxborough, MA, 01719, USA
michael.meissner@amd.com


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13  8:46         ` Jan Hubicka
  2007-09-13 18:42           ` Michael Meissner
@ 2007-09-13 18:42           ` Mark Mitchell
  2007-09-14  8:04             ` Kai Tietz
  1 sibling, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-13 18:42 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Kai Tietz, GCC, Jan Hubicka

Jan Hubicka wrote:
>> Kai Tietz wrote:
>>
>>> See
>>> http://www.nabble.com/-PING%5E2-PATCH-%3A-Preparations-for-SYSV-MS-ABI-attributes-in-backend-tf4414541.html
>>> http://www.nabble.com/-PATCH-%3A-Implementation-for-SYSV-MS-ABI-attributes-in-i386-may-before-stage--3-tf4428449.html
>> Thanks for letting me know.  I'm going to leave this to the x86 back-end
>> maintainers.

> Global or middle end maintainer is needed for the first patch however.

Good point.

Kai, why is your change making OUTGOING_REG_PARM_STACK_SPACE accept a
FUNCTION_DECL, rather than a FUNCTION_TYPE?  I'd think that all
calling-convention predicates ought to be looking at the type to support
calling through function pointers?

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* RE: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13 18:37   ` Mark Mitchell
@ 2007-09-13 18:44     ` Meissner, Michael
  2007-09-13 18:48       ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: Meissner, Michael @ 2007-09-13 18:44 UTC (permalink / raw)
  To: Mark Mitchell, GCC; +Cc: Harle, Christophe

> -----Original Message-----
> From: Mark Mitchell [mailto:mark@codesourcery.com]
> Sent: Thursday, September 13, 2007 2:37 PM
> To: Meissner, Michael; Mark Mitchell; GCC
> Subject: Re: GCC 4.3.0 Status Report (2007-09-04)
> 
> Michael Meissner wrote:
> 
> > One patch that got dropped on the floor was my patch to remove the
> dependency
> > in the back ends of the way arguments are encoded, so that
eventually
> for LTO
> > we can swtich to using a vector instead of linked list.
> 
> I think that could still goto 4.3, since it's already largely been
> reviewed.  But, of course, we do need to make sure all the targets
work.

I didn't hear back from you, so I checked in the machine independent and
i386 parts in my SSE5 patch.  Now, on to making the various ports still
work with the change.

--
Michael Meissner
AMD, MS 83-29
90 Central Street
Boxborough, MA 01719


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13 18:44     ` Meissner, Michael
@ 2007-09-13 18:48       ` Mark Mitchell
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-13 18:48 UTC (permalink / raw)
  To: Meissner, Michael; +Cc: GCC, Harle, Christophe

Meissner, Michael wrote:

> I didn't hear back from you, so I checked in the machine independent and
> i386 parts in my SSE5 patch.  Now, on to making the various ports still
> work with the change.

All right; sounds good.

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13 18:42           ` Michael Meissner
@ 2007-09-13 22:09             ` Joseph S. Myers
  2007-09-14  7:35               ` Kai Tietz
  0 siblings, 1 reply; 49+ messages in thread
From: Joseph S. Myers @ 2007-09-13 22:09 UTC (permalink / raw)
  To: Michael Meissner
  Cc: Jan Hubicka, Mark Mitchell, Kai Tietz, GCC, Jan Hubicka, christophe.harl

On Thu, 13 Sep 2007, Michael Meissner wrote:

> In the first patch, I am somewhat uncomfortable with changing RETURN_IN_MEMORY
> and OUTGOING_REG_PARM_STACK_SPACE, by adding an additional parameter, and then
> changing all of the targets.  It might be better to have new macros
> (RETURN_IN_MEMORY_ABI, OUTGOING_REG_PARM_STACK_SPACE_ABI), and if the old macro
> is defined, code the new macro calling the earlier macro.  This way you can
> avoid changing the other backends.  Otherwise, you probably need to work with
> each maintainer to make sure you haven't broken their code.

If you change the interface like that, the replacement should be a target 
hook in the target structure, not a target macro.

-- 
Joseph S. Myers
joseph@codesourcery.com

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13 22:09             ` Joseph S. Myers
@ 2007-09-14  7:35               ` Kai Tietz
  0 siblings, 0 replies; 49+ messages in thread
From: Kai Tietz @ 2007-09-14  7:35 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: christophe.harl, GCC, Jan Hubicka, Jan Hubicka, Mark Mitchell,
	Michael Meissner

"Joseph S. Myers" wrote on 14.09.2007 00:09:49:

> On Thu, 13 Sep 2007, Michael Meissner wrote:
> 
> > In the first patch, I am somewhat uncomfortable with changing 
> RETURN_IN_MEMORY
> > and OUTGOING_REG_PARM_STACK_SPACE, by adding an additional 
> parameter, and then
> > changing all of the targets.  It might be better to have new macros
> > (RETURN_IN_MEMORY_ABI, OUTGOING_REG_PARM_STACK_SPACE_ABI), and if 
> the old macro
> > is defined, code the new macro calling the earlier macro.  This way 
you can
> > avoid changing the other backends.  Otherwise, you probably need 
> to work with
> > each maintainer to make sure you haven't broken their code.
> 
> If you change the interface like that, the replacement should be a 
target 
> hook in the target structure, not a target macro.
> 
On 14 August 2007 16:04, Kai Tietz wrote:

AFAICS is RETURN_IN_MEMORY deprecated, isn't it. It seems to be there just 
by an incomplete move to TARGET_RETURN_IN_MEMORY (which allready has the 
additional parameter). Here's the 3.3.3 internals manual:


10.10.9 How Large Values Are Returned
-------------------------------------

When a function value's mode is `BLKmode' (and in some other cases),
the value is not returned according to `FUNCTION_VALUE' (*note Scalar
Return::).  Instead, the caller passes the address of a block of memory
in which the value should be stored.  This address is called the
"structure value address".

   This section describes how to control returning structure values in
memory.

`RETURN_IN_MEMORY (TYPE)'
     A C expression which can inhibit the returning of certain function
     values in registers, based on the type of value.  A nonzero value
     says to return the function value in memory, just as large
     structures are always returned.  Here TYPE will be a C expression
     of type `tree', representing the data type of the value.

     Note that values of mode `BLKmode' must be explicitly handled by
     this macro.  Also, the option `-fpcc-struct-return' takes effect
     regardless of this macro.  On most systems, it is possible to
     leave the macro undefined; this causes a default definition to be
     used, whose value is the constant 1 for `BLKmode' values, and 0
     otherwise.

     Do not use this macro to indicate that structures and unions
     should always be returned in memory.  You should instead use
     `DEFAULT_PCC_STRUCT_RETURN' to indicate this.





  And now the current top-of-tree internals manual:




15.10.9 How Large Values Are Returned
-------------------------------------

When a function value's mode is `BLKmode' (and in some other cases),
the value is not returned according to `TARGET_FUNCTION_VALUE' (*note
Scalar Return::).  Instead, the caller passes the address of a block of
memory in which the value should be stored.  This address is called the
"structure value address".

 This section describes how to control returning structure values in
memory.

 -- Target Hook: bool TARGET_RETURN_IN_MEMORY (tree TYPE, tree FNTYPE)
     This target hook should return a nonzero value to say to return the
     function value in memory, just as large structures are always
     returned.  Here TYPE will be the data type of the value, and FNTYPE
     will be the type of the function doing the returning, or `NULL' for
     libcalls.

     Note that values of mode `BLKmode' must be explicitly handled by
     this function.  Also, the option `-fpcc-struct-return' takes
     effect regardless of this macro.  On most systems, it is possible
     to leave the hook undefined; this causes a default definition to
     be used, whose value is the constant 1 for `BLKmode' values, and 0
     otherwise.

     Do not use this hook to indicate that structures and unions should
     always be returned in memory.  You should instead use
     `DEFAULT_PCC_STRUCT_RETURN' to indicate this.





So it looks like the documentation is already there; this is an incomplete 
transition, and I am just bringing the old back-compat macros up-to-date 
with the changed abi for the new target-hook version!

Cheers,
 i.A. Kai Tietz

|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer: 
Ulrike Döhler, Manuela Kluger


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-13 18:42           ` Mark Mitchell
@ 2007-09-14  8:04             ` Kai Tietz
  2007-09-14 16:50               ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: Kai Tietz @ 2007-09-14  8:04 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, Jan Hubicka, Jan Hubicka

Mark Mitchell wrote on 13.09.2007 20:42:25:
> Jan Hubicka wrote:
> >> Kai Tietz wrote:
> >>
> >>> See
> >>> http://www.nabble.com/-PING%5E2-PATCH-%3A-Preparations-for-SYSV-
> MS-ABI-attributes-in-backend-tf4414541.html
> >>> http://www.nabble.com/-PATCH-%3A-Implementation-for-SYSV-MS-ABI-
> attributes-in-i386-may-before-stage--3-tf4428449.html
> >> Thanks for letting me know.  I'm going to leave this to the x86 
back-end
> >> maintainers.
> 
> > Global or middle end maintainer is needed for the first patch however.
> 
> Good point.
> 
> Kai, why is your change making OUTGOING_REG_PARM_STACK_SPACE accept a
> FUNCTION_DECL, rather than a FUNCTION_TYPE?  I'd think that all
> calling-convention predicates ought to be looking at the type to support
> calling through function pointers?

Hi Mark,

This macro is used also in builtin's and libcalls subject where the 
FUNC_DECL is a null reference. Also in most places the FUNC_DECL is 
allready present. To avoid duplicate code to check and get the FUNC_TYPE 
by FUNC_DECL, I choose to pass the function declaration.

Cheers,
 i.A. Kai Tietz

|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer: 
Ulrike Döhler, Manuela Kluger


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-14  8:04             ` Kai Tietz
@ 2007-09-14 16:50               ` Mark Mitchell
  2007-09-17  6:56                 ` Kai Tietz
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Mitchell @ 2007-09-14 16:50 UTC (permalink / raw)
  To: Kai Tietz; +Cc: GCC, Jan Hubicka, Jan Hubicka

Kai Tietz wrote:

>> Kai, why is your change making OUTGOING_REG_PARM_STACK_SPACE accept a
>> FUNCTION_DECL, rather than a FUNCTION_TYPE?  I'd think that all
>> calling-convention predicates ought to be looking at the type to support
>> calling through function pointers?
> 
> This macro is used also in builtin's and libcalls subject where the 
> FUNC_DECL is a null reference. Also in most places the FUNC_DECL is 
> allready present. To avoid duplicate code to check and get the FUNC_TYPE 
> by FUNC_DECL, I choose to pass the function declaration.

I'm sorry -- that doesn't really answer the question I was trying to
ask.  To be clear, if we're calling through a function pointer, we still
need to be able to do the right thing, and in that case we don't have a
FUNCTION_DECL.  So, I don't understand how you can have a macro to
control the calling convention that accepts a FUNCTION_DECL; I would
think it would have to accept a FUNCTION_TYPE.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-14 16:50               ` Mark Mitchell
@ 2007-09-17  6:56                 ` Kai Tietz
  2007-09-17 21:31                   ` Mark Mitchell
  0 siblings, 1 reply; 49+ messages in thread
From: Kai Tietz @ 2007-09-17  6:56 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC, Jan Hubicka, Jan Hubicka

Mark,

> Kai Tietz wrote:
> 
> >> Kai, why is your change making OUTGOING_REG_PARM_STACK_SPACE accept a
> >> FUNCTION_DECL, rather than a FUNCTION_TYPE?  I'd think that all
> >> calling-convention predicates ought to be looking at the type to 
support
> >> calling through function pointers?
> > 
> > This macro is used also in builtin's and libcalls subject where the 
> > FUNC_DECL is a null reference. Also in most places the FUNC_DECL is 
> > allready present. To avoid duplicate code to check and get the 
FUNC_TYPE 
> > by FUNC_DECL, I choose to pass the function declaration.
> 
> I'm sorry -- that doesn't really answer the question I was trying to
> ask.  To be clear, if we're calling through a function pointer, we still
> need to be able to do the right thing, and in that case we don't have a
> FUNCTION_DECL.  So, I don't understand how you can have a macro to
> control the calling convention that accepts a FUNCTION_DECL; I would
> think it would have to accept a FUNCTION_TYPE.

Sorry, I think I missed your question. To make the macro 
OUTGOING_REG_PARM_STACK_SPACE accepting a FUNCTION_DECL, there is no 
special reason for it. I deceided this to make it accepting a 
FUNCTION_DECL to avoid the fndecl to fntype conversion in middle-backend. 
In some cases there is no fntype nor a valid fndecl and (a NULL value), 
but there is the FUNCTION_DECL type allready present, therefore I choose 
the FUNCTION_DECL type instead of the FUNCTION_TYPE. I think, I used it to 
be according to the REG_PARM_STACK_SPACE macro. If this is a serious 
problem, of course I can move this to a FUNCTION_TYPE. Are there some 
special needs to have here FUNCTION_TYPE ?

Cheers,
 i.A. Kai Tietz

|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer: 
Ulrike Döhler, Manuela Kluger


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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-17  6:56                 ` Kai Tietz
@ 2007-09-17 21:31                   ` Mark Mitchell
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Mitchell @ 2007-09-17 21:31 UTC (permalink / raw)
  To: Kai Tietz; +Cc: GCC, Jan Hubicka, Jan Hubicka

Kai Tietz wrote:

>> I'm sorry -- that doesn't really answer the question I was trying to
>> ask.  To be clear, if we're calling through a function pointer, we still
>> need to be able to do the right thing, and in that case we don't have a
>> FUNCTION_DECL.  So, I don't understand how you can have a macro to
>> control the calling convention that accepts a FUNCTION_DECL; I would
>> think it would have to accept a FUNCTION_TYPE.
> 
> Sorry, I think I missed your question. To make the macro 
> OUTGOING_REG_PARM_STACK_SPACE accepting a FUNCTION_DECL, there is no 
> special reason for it. I deceided this to make it accepting a 
> FUNCTION_DECL to avoid the fndecl to fntype conversion in middle-backend. 

> If this is a serious
> problem, of course I can move this to a FUNCTION_TYPE. Are there some 
> special needs to have here FUNCTION_TYPE ?

Yes, I think this -- and any other macros/hooks that affect calling
convention -- must be based on FUNCTION_TYPEs, not FUNCTION_DECLs.
Otherwise, we cannot properly support calling through a function pointer.

From (one) type-theoretic perspective, types tell you what set of
operations you can perform.  You can't perform the operation "call this
function, putting its parameters in the usual place" if the function
doesn't want its parameters there; ergo, this must be a property of the
type.

Furthermore, I would argue that the attributes here should be recorded
*only* on the type, in order to avoid duplication.  That's not strictly
speaking necessary, but calling conventions are certainly properly
thought of as a property of types, not of declarations.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

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

* Re: GCC 4.3.0 Status Report (2007-09-04)
  2007-09-09 18:43   ` Mark Mitchell
  2007-09-10 19:01     ` Martin Jambor
@ 2007-09-25 19:49     ` Martin Jambor
  1 sibling, 0 replies; 49+ messages in thread
From: Martin Jambor @ 2007-09-25 19:49 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: GCC

On Sun, Sep 09, 2007 at 11:42:55AM -0700, Mark Mitchell wrote:
> Other than that, the patch looks pretty good to me.  However, I'd like a
> middle-end maintainer to review the patch.  Ian, Diego, Roger, would one
> of you please take a look?

Well... ping? 

> to use the --param mechanism.  Our policy is to have *no* magic numbers
> for these kinds of things.  It's easy enough to allow users to use
> --param to set the values, and that makes it easy for people (often the
> compiler developers themselves) to experiment with the values to help
> fine-tune the defaults.

I have changed the patch accordingly, it can still be found at:

http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00972.html

Thanks,

Martin

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

end of thread, other threads:[~2007-09-25 19:49 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-05  2:40 GCC 4.3.0 Status Report (2007-09-04) Mark Mitchell
2007-09-05  3:24 ` DJ Delorie
2007-09-05  3:35   ` Mark Mitchell
2007-09-05  3:50     ` DJ Delorie
2007-09-05 22:25       ` Mark Mitchell
2007-09-05 22:32         ` DJ Delorie
2007-09-06  8:29 ` Richard Guenther
2007-09-06  9:06   ` Paolo Bonzini
2007-09-06  9:12     ` Richard Guenther
2007-09-09 19:44   ` Mark Mitchell
2007-09-09 21:11     ` Roger Sayle
2007-09-09 21:19       ` Richard Guenther
2007-09-09 21:30         ` Mark Mitchell
2007-09-06  9:18 ` Manuel López-Ibáñez
2007-09-06 17:33   ` Fu, Chao-Ying
2007-09-06 12:35 ` Jan Hubicka
2007-09-09 19:45   ` Mark Mitchell
2007-09-10  1:19     ` Jan Hubicka
2007-09-06 13:38 ` Sebastian Pop
2007-09-06 17:53   ` Jagasia, Harsha
2007-09-09 19:46     ` Mark Mitchell
2007-09-10 16:04       ` Jagasia, Harsha
2007-09-07 14:50 ` Martin Jambor
2007-09-09 18:43   ` Mark Mitchell
2007-09-10 19:01     ` Martin Jambor
2007-09-25 19:49     ` Martin Jambor
2007-09-08 12:14 ` Rask Ingemann Lambertsen
2007-09-09 18:55   ` Mark Mitchell
2007-09-10 13:25 ` Jakub Jelinek
2007-09-11  3:50   ` Mark Mitchell
2007-09-12 11:02     ` Kai Tietz
2007-09-13  6:03       ` Mark Mitchell
2007-09-13  8:46         ` Jan Hubicka
2007-09-13 18:42           ` Michael Meissner
2007-09-13 22:09             ` Joseph S. Myers
2007-09-14  7:35               ` Kai Tietz
2007-09-13 18:42           ` Mark Mitchell
2007-09-14  8:04             ` Kai Tietz
2007-09-14 16:50               ` Mark Mitchell
2007-09-17  6:56                 ` Kai Tietz
2007-09-17 21:31                   ` Mark Mitchell
2007-09-10 16:20 ` Peter Bergner
2007-09-11  3:57   ` Mark Mitchell
2007-09-10 16:37 ` Michael Meissner
2007-09-13 18:37   ` Mark Mitchell
2007-09-13 18:44     ` Meissner, Michael
2007-09-13 18:48       ` Mark Mitchell
2007-09-12 12:26 ` Ramana Radhakrishnan
2007-09-13 18:39   ` Mark Mitchell

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