public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: GCC Status Report (2004-03-09)
@ 2004-03-11 12:49 Richard Kenner
  2004-03-11 14:09 ` Eric Botcazou
  0 siblings, 1 reply; 32+ messages in thread
From: Richard Kenner @ 2004-03-11 12:49 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc

    Ok, fine, that's even clearer then.  But that was not the impression I got 
    when reading the discussion between you and Olivier on the subject.

I believe I became aware that the multiple writes wouldn't work *after*
the discussion you mention.  But I'm not certain.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: GCC Status Report (2004-03-09)
@ 2004-03-19 20:08 Richard Kenner
  0 siblings, 0 replies; 32+ messages in thread
From: Richard Kenner @ 2004-03-19 20:08 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc-patches, gcc

    Before I start thinking about a replacement, I'd like to understand
    what I'll be trying the replace.  It appears that no-bo-dy can tell
    what is the purpose of RTX_UNCHANGING_P.

Well I can tell you the *purpose*, but if you want the *definition*, that's
something else entirely.

The original idea was to separate objects that we knew could not be
modified by stores, like constant pool objects.

Then, at some later point, it was realized that we could also optimize by
allowing a *single* store to "constant" object to initialize it, but things
started rapidly going downhill once we started to take more and more
advantage of that property.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: GCC Status Report (2004-03-09)
@ 2004-03-19 14:22 Richard Kenner
  0 siblings, 0 replies; 32+ messages in thread
From: Richard Kenner @ 2004-03-19 14:22 UTC (permalink / raw)
  To: jakub; +Cc: gcc-patches, gcc

    That would be certainly safest and the UNCHANGING would really mean
    unchanging.  But I hope we could at least extend it to objects which are
    *never* stored into in current function (see if the object is initialized
    in the function currently expanded into RTL, if not, use RTX_UNCHANGING_P
    for it as well, otherwise perhaps use some other bit or alias set).

I think so.  Certainly that would be true for parameters in languages
where they can't be changed.

It seems the trickiest problems come when we try to define what
*writing* to "unchanging" memory means.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: GCC Status Report (2004-03-09)
@ 2004-03-19  6:34 Richard Kenner
  2004-03-19 12:18 ` Jakub Jelinek
  0 siblings, 1 reply; 32+ messages in thread
From: Richard Kenner @ 2004-03-19  6:34 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc-patches, gcc

    > Can't we at least detect the case where either the whole aggregate
    > is const or all its fields are const?  Then we don't need any blockage.

    So we endorse the double /u liberality?

I don't.

As I said in more private email, my feeling in the /u case where you have
a partial aggregate is to do the stores into a temporary and move it into
the /u.  Yes, that's less efficient and in many ways more than undoes the
advantage of /u, but partial aggregates are rare.

I think that's cleaner than blockage stuff.

I don't know what to think about /u overall.  It's becoming more and more
clear that it's the source of a lot of trouble and probably is becoming
less and less useful with aliasing code around anyway.  I'd be in favor
of trying the experiment of only using it on data that's *never* explicitly
stored (like constant-pool or items with static initializers).  So we
disallow stores to /u.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: GCC Status Report (2004-03-09)
@ 2004-03-11 12:15 Richard Kenner
  2004-03-11 12:39 ` Eric Botcazou
  0 siblings, 1 reply; 32+ messages in thread
From: Richard Kenner @ 2004-03-11 12:15 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc

    In practice, though, there has been a more liberal use of this /u flag 
    because putting it on several writes to the same memory location doesn't 
    seem to cause any problem as long as every write to the said location 
    carries the /u flag (because the memory writes then conflict).

No, I don't think that's right.  I'm pretty sure that there is some
code someplace that will fail if there are two writes to the same /u location
and I thought we added code to prevent any such.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* GCC Status Report (2004-03-09)
@ 2004-03-09 18:09 Mark Mitchell
  2004-03-11  9:45 ` Eric Botcazou
  0 siblings, 1 reply; 32+ messages in thread
From: Mark Mitchell @ 2004-03-09 18:09 UTC (permalink / raw)
  To: gcc


[I tried to send this out last night, but apparently failed.]

GCC 3.4
=======

Unfortunately, although progress was made last week, we still have a
ways to go.  We're down to 48 regressions targeted at 3.4.1, down from
57.  Some of those have patches that I've approved for 3.4, but there
are a lot that do not.  We're not ready to spin prerelease bits yet.

I'd particularly like to understand this RTX_UNCHANGING_P optimization
issue.  We've bumped into this before.  I think we need to take the
conservative approach, even if that is pessimizing in some case.
Would someone who understands the details of this bug please summarize
it, mail that to me, and also add that information to the appropriate
PR?

Some of the other PRs also look pretty significant.  I'll continue to
beat on the C++ issues, but there are serious issues with debugging
(13974) and with wrong code (14381, 14470, 12863, 13424, 13632).

Henceforth, please do not make any non-documentation check-ins to the
3.4 branch without my explicit approval.  To get that approval, please
do *not* send me mail directly.  Instead, add your patch to the
relevant PR, which must be targeted at 3.r, and add me to the CC list
for the PR.  Note that this procedure implies that if there is no PR
targeted at 3.4 I will not accept the patch.

Furthermore, please do not create any new PRs targeted for 3.4 without
my explicit permission.  If it's a regression, target it for 3.4.1.
If you think it might need to be fixed in 3.4, add me to the CC list,
and add a note asking me to move back the target.  Please do not do
this unless the PR is wrong-code, ICE-on-valid, or bootstrap for a
primary target.  New PRs referring to other categories of error are
simply not going to get fixed for 3.4.

GCC 3.5
=======

In a holding pattern until tree-ssa merge is complete.

--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com

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

end of thread, other threads:[~2004-03-20 11:03 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-11 12:49 GCC Status Report (2004-03-09) Richard Kenner
2004-03-11 14:09 ` Eric Botcazou
  -- strict thread matches above, loose matches on Subject: below --
2004-03-19 20:08 Richard Kenner
2004-03-19 14:22 Richard Kenner
2004-03-19  6:34 Richard Kenner
2004-03-19 12:18 ` Jakub Jelinek
2004-03-11 12:15 Richard Kenner
2004-03-11 12:39 ` Eric Botcazou
2004-03-09 18:09 Mark Mitchell
2004-03-11  9:45 ` Eric Botcazou
2004-03-11 12:48   ` Jakub Jelinek
2004-03-11 21:11     ` Richard Henderson
2004-03-16 16:53   ` Mark Mitchell
2004-03-16 16:59     ` Paul Koning
2004-03-16 17:11       ` Ian Lance Taylor
2004-03-16 17:24         ` Zack Weinberg
2004-03-16 17:25           ` Paul Koning
2004-03-17 10:56     ` Eric Botcazou
2004-03-17 11:49       ` Eric Botcazou
2004-03-17 15:55       ` Mark Mitchell
2004-03-18  8:25         ` Eric Botcazou
2004-03-18 18:31           ` Eric Botcazou
2004-03-18 19:15             ` Mark Mitchell
2004-03-18 23:36               ` Eric Botcazou
2004-03-18 23:41                 ` Jakub Jelinek
2004-03-19  1:23                   ` Eric Botcazou
2004-03-19 14:31                   ` Eric Botcazou
2004-03-19 19:29                     ` Mark Mitchell
2004-03-19 20:04                       ` Eric Botcazou
2004-03-19 20:23                         ` Mark Mitchell
2004-03-20 19:51                           ` Eric Botcazou
     [not found]                 ` <405A3F26.2050100@codesourcery.com>
     [not found]                   ` <200403190155.18981.ebotcazou@libertysurf.fr>
2004-03-19  6:42                     ` 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).