* [Bug ipa/64307] [5 Regression] ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
2014-12-14 16:53 [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf zsojka at seznam dot cz
@ 2014-12-15 8:56 ` rguenth at gcc dot gnu.org
2014-12-15 10:08 ` mpolacek at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-12-15 8:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mliska at suse dot cz
Target Milestone|--- |5.0
Summary|ICE: verify_gimple failed: |[5 Regression] ICE:
|invalid argument to gimple |verify_gimple failed:
|call with -fPIC -fipa-icf |invalid argument to gimple
| |call with -fPIC -fipa-icf
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug ipa/64307] [5 Regression] ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
2014-12-14 16:53 [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf zsojka at seznam dot cz
2014-12-15 8:56 ` [Bug ipa/64307] [5 Regression] " rguenth at gcc dot gnu.org
@ 2014-12-15 10:08 ` mpolacek at gcc dot gnu.org
2015-01-13 9:18 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2014-12-15 10:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-12-15
CC| |mpolacek at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug ipa/64307] [5 Regression] ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
2014-12-14 16:53 [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf zsojka at seznam dot cz
2014-12-15 8:56 ` [Bug ipa/64307] [5 Regression] " rguenth at gcc dot gnu.org
2014-12-15 10:08 ` mpolacek at gcc dot gnu.org
@ 2015-01-13 9:18 ` jakub at gcc dot gnu.org
2015-01-13 9:55 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-13 9:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r216305 aka ICF addition.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug ipa/64307] [5 Regression] ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
2014-12-14 16:53 [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf zsojka at seznam dot cz
` (2 preceding siblings ...)
2015-01-13 9:18 ` jakub at gcc dot gnu.org
@ 2015-01-13 9:55 ` jakub at gcc dot gnu.org
2015-01-13 10:24 ` rguenth at gcc dot gnu.org
2015-01-14 10:36 ` marxin at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-13 9:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This doesn't ICE starting with r218860, but it isn't clear to me if it just
didn't make the issue latent.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug ipa/64307] [5 Regression] ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
2014-12-14 16:53 [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf zsojka at seznam dot cz
` (3 preceding siblings ...)
2015-01-13 9:55 ` jakub at gcc dot gnu.org
@ 2015-01-13 10:24 ` rguenth at gcc dot gnu.org
2015-01-14 10:36 ` marxin at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-13 10:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Init called for 2 items (100.00%).
false returned: 'Unknown TREE code reached' (compare_operand:480)
false returned: 'memory operands are different' (compare_gimple_assign:785)
different statement for code: GIMPLE_ASSIGN (compare_bb:638):
_2 = REALPART_EXPR <a>;
_2 = REALPART_EXPR <a>;
false returned: '' (equals_private:537)
surely latent (the above is without -fPIC).
Index: gcc/ipa-icf-gimple.c
===================================================================
--- gcc/ipa-icf-gimple.c (revision 219520)
+++ gcc/ipa-icf-gimple.c (working copy)
@@ -448,6 +448,8 @@ func_checker::compare_operand (tree t1,
return return_with_debug (ret);
}
+ case IMAGPART_EXPR:
+ case REALPART_EXPR:
case ADDR_EXPR:
{
x1 = TREE_OPERAND (t1, 0);
makes them compare equal, but still no transform is done, even w/o -fPIC.
Note BIT_FIELD_REF handling is completely broken:
case BIT_FIELD_REF:
{
ret = compare_decl (t1, t2);
return return_with_debug (ret);
}
???
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug ipa/64307] [5 Regression] ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
2014-12-14 16:53 [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf zsojka at seznam dot cz
` (4 preceding siblings ...)
2015-01-13 10:24 ` rguenth at gcc dot gnu.org
@ 2015-01-14 10:36 ` marxin at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: marxin at gcc dot gnu.org @ 2015-01-14 10:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> ---
Fixed in 5.0.0.
>From gcc-bugs-return-473169-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Jan 14 10:49:22 2015
Return-Path: <gcc-bugs-return-473169-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 23130 invoked by alias); 14 Jan 2015 10:49:21 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 23053 invoked by uid 48); 14 Jan 2015 10:49:15 -0000
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/59354] [4.8/4.9/5 Regression] Element swizzling produces invalid result with -O3
Date: Wed, 14 Jan 2015 10:49:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: tree-optimization
X-Bugzilla-Version: 4.8.2
X-Bugzilla-Keywords: wrong-code
X-Bugzilla-Severity: normal
X-Bugzilla-Who: rguenth at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.8.5
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-59354-4-L4aAaw7GcC@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-59354-4@http.gcc.gnu.org/bugzilla/>
References: <bug-59354-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-01/txt/msg01163.txt.bz2
Content-length: 2587
https://gcc.gnu.org/bugzilla/show_bug.cgi?idY354
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok, we SLP the first block
node
stmt 0 b[_17] = _24;
stmt 1 b[_3] = _50;
stmt 2 b[_93] = _99;
stmt 3 b[_104] = _110;
node
stmt 0 _24 = (unsigned char) _23;
stmt 1 _50 = (unsigned char) _63;
stmt 2 _99 = (unsigned char) _98;
stmt 3 _110 = (unsigned char) _109;
node
stmt 0 _23 = a[_21];
stmt 1 _63 = a[_64];
stmt 2 _98 = a[_97];
stmt 3 _109 = a[_108];
and for all other instances claim the load permutation is not supported.
For the stmts visble above the load permutation _is_ 1:1, but as we need
to gobble up more loads due to the truncation the effective SLP group
we deal with has gaps (bah, the gaps code...)
Thus the underlying issue is that we have
t.c:13:3: note: Detected interleaving of size 16
t.c:13:3: note: Detected interleaving of size 4
t.c:13:3: note: Detected interleaving of size 4
t.c:13:3: note: Detected interleaving of size 4
t.c:13:3: note: Detected interleaving of size 4
with the group-size of the stores (4) determining the SLP group size but
the analysis code being confused by the non-matching group size of the
loads.
In the end we should probably split up the groups if a single group ends up
being refered to in different SLP instances (thus also postpone most of
the dependence-kind tests until after SLP discovery). Let's see if a simple
workaround doesn't regress anything.
Index: gcc/tree-vect-slp.c
==================================================================--- gcc/tree-vect-slp.c (revision 219581)
+++ gcc/tree-vect-slp.c (working copy)
@@ -729,8 +729,11 @@ vect_build_slp_tree_1 (loop_vec_info loo
??? We should enhance this to only disallow gaps
inside vectors. */
if ((unrolling_factor > 1
- && GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) == stmt
- && GROUP_GAP (vinfo_for_stmt (stmt)) != 0)
+ && ((GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) == stmt
+ && GROUP_GAP (vinfo_for_stmt (stmt)) != 0)
+ /* If the group is split up then GROUP_GAP
+ isn't correct here, nor is GROUP_FIRST_ELEMENT. */
+ || GROUP_SIZE (vinfo_for_stmt (stmt)) > group_size))
|| (GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) != stmt
&& GROUP_GAP (vinfo_for_stmt (stmt)) != 1))
{
^ permalink raw reply [flat|nested] 7+ messages in thread