public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/43959] [4.6 Regression] FAIL: gcc.dg/torture/builtin-cproj-1.c -O1 (test for excess errors)
Date: Sat, 18 Sep 2010 22:14:00 -0000 [thread overview]
Message-ID: <20100918221422.12670.qmail@sourceware.org> (raw)
In-Reply-To: <bug-43959-276@http.gcc.gnu.org/bugzilla/>
------- Comment #16 from dave at hiauly1 dot hia dot nrc dot ca 2010-09-18 22:14 -------
Subject: Re: [4.6 Regression] FAIL:
gcc.dg/torture/builtin-cproj-1.c -O1 (test for excess errors)
On Sat, 18 Sep 2010, rguenth at gcc dot gnu dot org wrote:
> ------- Comment #14 from rguenth at gcc dot gnu dot org 2010-09-18 18:25 -------
> You have way more non-SSA variables - possibly due to callee-copy of args
> (again).
I think you are correct about this being a callee-copy problem. Complex
float is passed by value, so a copy is not made. In the 087t.dce2 pass,
the float code is simplified to
if (x_32(D) != 0)
goto <bb 4>;
else
goto <bb 3>;
<bb 3>:
<bb 4>:
Invalid sum of incoming frequencies 10000, should be 5000
# cf$imag_13 = PHI <4.0e+0(2), 5.0e+0(3)>
cf_36 = COMPLEX_EXPR < Inf, cf$imag_13>; D.2130_37 = __builtin_cprojf
(cf_36);
D.2133_152 = IMAGPART_EXPR <D.2130_37>;
D.2134_41 = __builtin_copysignf (1.0e+0, D.2133_152);
if (D.2134_41 != 1.0e+0)
goto <bb 5>;
else
goto <bb 6>;
<bb 5>:
Invalid sum of incoming frequencies 2500, should be 6450
link_error (160);
whereas for double we still have
<bb 6>:
Invalid sum of incoming frequencies 8950, should be 10000
REALPART_EXPR <cd.1> = Inf;
if (x_32(D) != 0)
goto <bb 8>;
else
goto <bb 7>;
<bb 7>:
<bb 8>:
# iftmp.4_14 = PHI <4.0e+0(6), 5.0e+0(7)>
D.2321_122 = REALPART_EXPR <cd.1>;
cd.5_44 = COMPLEX_EXPR <D.2321_122, iftmp.4_14>;
D.2142_45 = __builtin_cproj (cd.5_44); [return slot optimization]
CR.26_84 = REALPART_EXPR <D.2142_45>;
D.2145_85 = IMAGPART_EXPR <D.2142_45>;
D.2325_75 = CR.26_84 >
1.79769313486231570814527423731704356798070567526e+308;
D.2326_76 = !D.2325_75;
D.2327_67 = D.2145_85 != 0.0;
D.2328_60 = D.2327_67 || D.2326_76;
if (D.2328_60 == 1)
goto <bb 10>;
else
goto <bb 9>;
<bb 9>:
D.2146_49 = (float) D.2145_85;
D.2147_50 = __builtin_copysignf (1.0e+0, D.2146_49);
if (D.2147_50 != 1.0e+0)
goto <bb 10>;
else
goto <bb 11>;
<bb 10>:
link_error (160);
In the previous 086t.reassoc1 pass, we still had the non SSA stuff:
<bb 2>:
cld$real_188 = REALPART_EXPR <cld_25(D)>;
cld$imag_189 = IMAGPART_EXPR <cld_25(D)>;
cd$real_177 = REALPART_EXPR <cd_26(D)>;
cd$imag_178 = IMAGPART_EXPR <cd_26(D)>;
cf$real_167 = REALPART_EXPR <cf_29(D)>;
cf$imag_158 = IMAGPART_EXPR <cf_29(D)>;
REALPART_EXPR <cld.0> = cld$real_188;
IMAGPART_EXPR <cld.0> = cld$imag_189;
REALPART_EXPR <cd.1> = cd$real_177;
IMAGPART_EXPR <cd.1> = cd$imag_178;
if (x_32(D) != 0)
goto <bb 4>;
else
goto <bb 3>;
-fno-tree-sra didn't help.
080t.cplxlower makes these partial defintions:
REALPART_EXPR <cld.0> = cld$real_188;
IMAGPART_EXPR <cld.0> = cld$imag_189;
REALPART_EXPR <cd.1> = cd$real_177;
IMAGPART_EXPR <cd.1> = cd$imag_178;
# grep real_188 builtin-cproj-1.c.*
builtin-cproj-1.c.080t.cplxlower: cld$real_188 = REALPART_EXPR <cld_25(D)>;
builtin-cproj-1.c.080t.cplxlower: REALPART_EXPR <cld.0> = cld$real_188;
builtin-cproj-1.c.082t.copyrename3: cld$real_188 = REALPART_EXPR <cld_25(D)>;
builtin-cproj-1.c.082t.copyrename3: REALPART_EXPR <cld.0> = cld$real_188;
builtin-cproj-1.c.083t.dom1: cld$real_188 = REALPART_EXPR <cld_25(D)>;
builtin-cproj-1.c.083t.dom1: REALPART_EXPR <cld.0> = cld$real_188;
builtin-cproj-1.c.084t.phicprop1: cld$real_188 = REALPART_EXPR <cld_25(D)>;
builtin-cproj-1.c.084t.phicprop1: REALPART_EXPR <cld.0> = cld$real_188;
builtin-cproj-1.c.085t.dse1: cld$real_188 = REALPART_EXPR <cld_25(D)>;
builtin-cproj-1.c.085t.dse1: REALPART_EXPR <cld.0> = cld$real_188;
builtin-cproj-1.c.086t.reassoc1: cld$real_188 = REALPART_EXPR <cld_25(D)>;
builtin-cproj-1.c.086t.reassoc1: REALPART_EXPR <cld.0> = cld$real_188;
004t.gimple makes
REALPART_EXPR <cd.1> = Inf;
# grep "REALPART_EXPR <cd.1>" builtin-cproj-1.c.*
builtin-cproj-1.c.004t.gimple: REALPART_EXPR <cd.1> = Inf;
builtin-cproj-1.c.004t.gimple: REALPART_EXPR <cd.1> = -Inf;
builtin-cproj-1.c.004t.gimple: REALPART_EXPR <cd.1> = Inf;
builtin-cproj-1.c.004t.gimple: REALPART_EXPR <cd.1> = -Inf;
builtin-cproj-1.c.009t.omplower: REALPART_EXPR <cd.1> = Inf;
builtin-cproj-1.c.009t.omplower: REALPART_EXPR <cd.1> = -Inf;
builtin-cproj-1.c.009t.omplower: REALPART_EXPR <cd.1> = Inf;
builtin-cproj-1.c.009t.omplower: REALPART_EXPR <cd.1> = -Inf;
...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43959
next prev parent reply other threads:[~2010-09-18 22:14 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-02 0:23 [Bug middle-end/43959] New: " danglin at gcc dot gnu dot org
2010-05-02 15:26 ` [Bug testsuite/43959] [4.6 Regression] " rguenth at gcc dot gnu dot org
2010-09-02 10:46 ` rguenth at gcc dot gnu dot org
2010-09-02 15:25 ` ghazi at gcc dot gnu dot org
2010-09-02 16:28 ` dave at hiauly1 dot hia dot nrc dot ca
2010-09-07 23:23 ` danglin at gcc dot gnu dot org
2010-09-07 23:44 ` ghazi at gcc dot gnu dot org
2010-09-08 0:16 ` dave at hiauly1 dot hia dot nrc dot ca
2010-09-08 0:25 ` danglin at gcc dot gnu dot org
2010-09-12 15:38 ` dave at hiauly1 dot hia dot nrc dot ca
2010-09-18 18:10 ` [Bug tree-optimization/43959] " danglin at gcc dot gnu dot org
2010-09-18 18:25 ` rguenth at gcc dot gnu dot org
2010-09-18 18:59 ` dave at hiauly1 dot hia dot nrc dot ca
2010-09-18 22:14 ` dave at hiauly1 dot hia dot nrc dot ca [this message]
2010-09-19 11:10 ` rguenth at gcc dot gnu dot org
2010-09-19 14:53 ` dave at hiauly1 dot hia dot nrc dot ca
[not found] <bug-43959-4@http.gcc.gnu.org/bugzilla/>
2010-09-30 12:25 ` rguenth at gcc dot gnu.org
2010-09-30 17:50 ` dave at hiauly1 dot hia.nrc.ca
2010-10-01 0:47 ` danglin at gcc dot gnu.org
2010-10-01 0:52 ` danglin at gcc dot gnu.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=20100918221422.12670.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).