public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rguenther at suse dot de" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada
Date: Thu, 16 Apr 2009 08:06:00 -0000	[thread overview]
Message-ID: <20090416080609.14582.qmail@sourceware.org> (raw)
In-Reply-To: <bug-39625-13830@http.gcc.gnu.org/bugzilla/>



------- Comment #30 from rguenther at suse dot de  2009-04-16 08:06 -------
Subject: Re:  [4.5 regression] Revision 145338 breaks
 ability to build Ada

On Thu, 16 Apr 2009, ebotcazou at gcc dot gnu dot org wrote:

> ------- Comment #29 from ebotcazou at gcc dot gnu dot org  2009-04-16 07:57 -------
> Richard,
> 
> the removal of
> 
>   /* If the RHS of the MODIFY_EXPR may throw or make a nonlocal goto
>      and the LHS is a user variable, then we need to introduce a formal
>      temporary.  This way the optimizers can determine that the user
>      variable is only modified if evaluation of the RHS does not throw.  */
> 
> from is_gimple_reg_or_call_rhs breaks __builtin_setjmp / __builtin_longjmp (and
> probably nonlocal gotos).

Do you happen to have a testcase?  I compensated for the loss of the above
during EH lowering when we split blocks at these points.  Note the comment
continued as

-     Don't force a temp of a non-renamable type; the copy could be
-     arbitrarily expensive.  Instead we will generate a VDEF for
-     the assignment.  */

and the check itself applied as

-      && ((TREE_CODE (t) == CALL_EXPR && TREE_SIDE_EFFECTS (t))
-         || tree_could_throw_p (t)))

thus all non-pure/const calls would get the extra copy.

The intent of the patch was to make the gimple predicates valid after
gimplification (and not only during it), so the fix should be applied
during CFG creation or lowering.

Thanks,
Richard.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625


  parent reply	other threads:[~2009-04-16  8:06 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-03 14:44 [Bug ada/39625] New: Revision 145488 - Ada - Unable to coalesce ssa_names 96 and 455 which are marked as MUST COALESCE rob1weld at aol dot com
2009-04-04  1:59 ` [Bug ada/39625] " rob1weld at aol dot com
2009-04-04 17:26 ` rob1weld at aol dot com
2009-04-04 17:45 ` [Bug ada/39625] " ebotcazou at gcc dot gnu dot org
2009-04-05  0:49 ` rob1weld at aol dot com
2009-04-05  9:46 ` rob1weld at aol dot com
2009-04-05 17:08 ` rob1weld at aol dot com
2009-04-05 17:32 ` [Bug middle-end/39625] [4.5 regression] Revision 145338 breaks ability to build Ada rob1weld at aol dot com
2009-04-05 17:40 ` steven at gcc dot gnu dot org
2009-04-05 17:55 ` ebotcazou at gcc dot gnu dot org
2009-04-05 18:12 ` laurent at guerby dot net
2009-04-05 18:18 ` laurent at guerby dot net
2009-04-05 18:26 ` ebotcazou at gcc dot gnu dot org
2009-04-05 18:46 ` laurent at guerby dot net
2009-04-05 20:04 ` rob1weld at aol dot com
2009-04-05 20:10 ` rob1weld at aol dot com
2009-04-05 20:24 ` laurent at guerby dot net
2009-04-05 20:53 ` rob1weld at aol dot com
2009-04-05 21:43 ` ebotcazou at gcc dot gnu dot org
2009-04-05 22:18 ` rainer at emrich-ebersheim dot de
2009-04-07  4:00 ` rob1weld at aol dot com
2009-04-07  5:14 ` ebotcazou at gcc dot gnu dot org
2009-04-09  3:51 ` rob1weld at aol dot com
2009-04-09  6:37 ` charlet at gcc dot gnu dot org
2009-04-09  8:07 ` ebotcazou at gcc dot gnu dot org
2009-04-09 15:17 ` rob1weld at aol dot com
2009-04-09 15:41 ` charlet at gcc dot gnu dot org
2009-04-11  2:27 ` rob1weld at aol dot com
2009-04-16  7:34 ` ebotcazou at gcc dot gnu dot org
2009-04-16  7:57 ` ebotcazou at gcc dot gnu dot org
2009-04-16  8:06 ` rguenther at suse dot de [this message]
2009-04-16  8:33 ` ebotcazou at gcc dot gnu dot org
2009-04-16  8:45 ` rguenther at suse dot de
2009-04-16  8:58 ` rguenth at gcc dot gnu dot org
2009-04-16  8:59 ` rguenth at gcc dot gnu dot org
2009-04-16  9:13 ` ebotcazou at gcc dot gnu dot org
2009-04-16  9:22 ` rguenth at gcc dot gnu dot org
2009-04-16  9:37 ` [Bug middle-end/39625] [4.5 Regression] " rguenth at gcc dot gnu dot org
2009-04-16 10:45 ` rguenth at gcc dot gnu dot org
2009-04-16 10:45 ` rguenth at gcc dot gnu dot org
2009-04-17 23:33 ` rob1weld at aol dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090416080609.14582.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).