public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ipa/64307] New: ICE: verify_gimple failed: invalid argument to gimple call with -fPIC -fipa-icf
@ 2014-12-14 16:53 zsojka at seznam dot cz
  2014-12-15  8:56 ` [Bug ipa/64307] [5 Regression] " rguenth at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: zsojka at seznam dot cz @ 2014-12-14 16:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64307

            Bug ID: 64307
           Summary: ICE: verify_gimple failed: invalid argument to gimple
                    call with -fPIC -fipa-icf
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz

Created attachment 34279
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34279&action=edit
reduced testcase

Compiler output:
$ gcc -fPIC -fipa-icf testcase.c 
testcase.c: In function 'real_part':
testcase.c:9:1: error: invalid argument to gimple call
 }
 ^
a
# .MEM_2 = VDEF <.MEM_1(D)>
retval.0_3 = real_part_2.localalias.0 (a); [tail call]
testcase.c:9:1: internal compiler error: verify_gimple failed
0xc55cd0 verify_gimple_in_cfg(function*, bool)
        /mnt/svn/gcc-trunk/gcc/tree-cfg.c:5050
0xb1c20f execute_function_todo
        /mnt/svn/gcc-trunk/gcc/passes.c:1940
0xb1c9cd do_per_function
        /mnt/svn/gcc-trunk/gcc/passes.c:1639
0xb1cae3 execute_todo
        /mnt/svn/gcc-trunk/gcc/passes.c:1997
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Tested revisions:
r218707 - ICE


^ 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 ` 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

end of thread, other threads:[~2015-01-14 10:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2015-01-13 10:24 ` rguenth at gcc dot gnu.org
2015-01-14 10:36 ` marxin at gcc dot gnu.org

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).