public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "kazu at cs dot umass dot edu" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/18576] [3.4/4.0 Regression] missing jump threading because of type changes Date: Sun, 12 Dec 2004 17:42:00 -0000 [thread overview] Message-ID: <20041212174201.8031.qmail@sourceware.org> (raw) In-Reply-To: <20041120062915.18576.pinskia@gcc.gnu.org> ------- Additional Comments From kazu at cs dot umass dot edu 2004-12-12 17:42 ------- Another (possibly expensive) approach would be to "ignore" statements whose results are used only in the basic block we are threading through. Consider: # iftmp.0_1 = PHI <1(2), 0(3), 0(1)>; <L4>:; D.1171_13 = (unsigned char) iftmp.0_1; D.1160_14 = (int) D.1171_13; D.1145_16 = (unsigned char) D.1160_14; if (D.1145_16 != 0) goto <L8>; else goto <L14>; Note that the LHS of all MODIFY_EXPRs are used only in this basic block. So if we get to COND_EXPR and find out that COND_EXPR_COND is a constant (due to temporary propagation), then we can safely duplicate this basic block and thread an incoming edge (without causing code bloat). All the duplicate copies of MODIFY_EXPRs will be removed as dead code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18576
next prev parent reply other threads:[~2004-12-12 17:42 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-11-20 6:29 [Bug tree-optimization/18576] New: " pinskia at gcc dot gnu dot org 2004-11-20 6:37 ` [Bug tree-optimization/18576] " pinskia at gcc dot gnu dot org 2004-11-20 6:43 ` pinskia at gcc dot gnu dot org 2004-11-20 16:44 ` steven at gcc dot gnu dot org 2004-11-20 17:01 ` steven at gcc dot gnu dot org 2004-11-20 17:11 ` steven at gcc dot gnu dot org 2004-11-20 17:11 ` pinskia at gcc dot gnu dot org 2004-11-20 17:57 ` [Bug tree-optimization/18576] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org 2004-11-24 22:38 ` steven at gcc dot gnu dot org 2004-11-25 0:22 ` law at redhat dot com 2004-12-12 17:26 ` kazu at cs dot umass dot edu 2004-12-12 17:42 ` kazu at cs dot umass dot edu [this message] 2004-12-13 16:33 ` law at redhat dot com 2004-12-13 17:13 ` kazu at cs dot umass dot edu 2004-12-13 17:28 ` law at redhat dot com 2004-12-22 14:08 ` kazu at cs dot umass dot edu 2005-01-06 14:43 ` tobi at gcc dot gnu dot org 2005-03-22 19:26 ` pinskia at gcc dot gnu dot org 2005-05-19 17:38 ` mmitchel at gcc dot gnu dot org 2005-07-22 21:12 ` pinskia at gcc dot gnu dot org 2005-09-27 16:17 ` mmitchel at gcc dot gnu dot org [not found] <bug-18576-6528@http.gcc.gnu.org/bugzilla/> 2005-11-04 15:37 ` pinskia at gcc dot gnu dot org
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=20041212174201.8031.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: linkBe 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).