public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/57411] New: [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize
@ 2013-05-25  8:28 zsojka at seznam dot cz
  2013-05-27  8:30 ` [Bug tree-optimization/57411] " rguenth at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: zsojka at seznam dot cz @ 2013-05-25  8:28 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 57411
           Summary: [4.9 Regression] ICE: verify_ssa failed: definition in
                    block 4 does not dominate use in block 11 with
                    -fno-tree-dce -ftree-vectorize
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz

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

Compiler output:
$ gcc -O -fno-tree-dce -ftree-vectorize testcase.C
testcase.C: In function 'void test01(int)':
testcase.C:15:1: error: definition in block 4 does not dominate use in block 11
 test01 (int equal)
 ^
for SSA_NAME: .MEM_44 in statement:
.MEM_1 = PHI <.MEM_44(11), .MEM_5(12)>
PHI argument
.MEM_44
for PHI node
.MEM_1 = PHI <.MEM_44(11), .MEM_5(12)>
testcase.C:15:1: internal compiler error: verify_ssa failed
0xd63bc9 verify_ssa(bool)
        /mnt/svn/gcc-trunk/gcc/tree-ssa.c:1046
0xaf4b91 execute_function_todo
        /mnt/svn/gcc-trunk/gcc/passes.c:1970
0xaf54e7 execute_todo
        /mnt/svn/gcc-trunk/gcc/passes.c:2002
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.

$ gcc -v                                          
Using built-in specs.
COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc
COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-199312-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df
--enable-languages=c,c++,lto,fortran
--prefix=/mnt/svn/gcc-trunk/binary-199312-lto-fortran-checking-yes-rtl-df/
--without-cloog --without-ppl
Thread model: posix
gcc version 4.9.0 20130524 (experimental) (GCC) 

Tested revisions:
r199312 - fail
4.8 r198018 - OK


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug tree-optimization/57411] [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize
  2013-05-25  8:28 [Bug tree-optimization/57411] New: [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize zsojka at seznam dot cz
@ 2013-05-27  8:30 ` rguenth at gcc dot gnu.org
  2013-05-27 12:02 ` rguenth at gcc dot gnu.org
  2013-05-28 10:55 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-05-27  8:30 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2013-05-27
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org
   Target Milestone|---                         |4.9.0
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed, mine.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug tree-optimization/57411] [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize
  2013-05-25  8:28 [Bug tree-optimization/57411] New: [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize zsojka at seznam dot cz
  2013-05-27  8:30 ` [Bug tree-optimization/57411] " rguenth at gcc dot gnu.org
@ 2013-05-27 12:02 ` rguenth at gcc dot gnu.org
  2013-05-28 10:55 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-05-27 12:02 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's already DOM that breaks virtual SSA form by making life-ranges overlap
(something we do not verify ...)

  <bb 5>:
  # .MEM_14 = PHI <.MEM_9(3)>
  if (equal_4(D) != 0)
    goto <bb 6>;
  else
    goto <bb 7>;

  <bb 6>:
  # .MEM_5 = VDEF <.MEM_14>
  assert_fail ();

  <bb 7>:
  # .MEM_1 = PHI <.MEM_9(5), .MEM_5(6)>
  # VUSE <.MEM_1>
  return;

here .MEM_14 and .MEM_9 have overlapping life-ranges.

@@ -33,7 +50,7 @@
   assert_fail ();

   <bb 7>:
-  # .MEM_1 = PHI <.MEM_14(5), .MEM_5(6)>
+  # .MEM_1 = PHI <.MEM_9(5), .MEM_5(6)>
   # VUSE <.MEM_1>
   return;


It fails to update the

  # .MEM_5 = VDEF <.MEM_14>
  assert_fail ();

statement because it only walks over real operands when optimizing stmts
in cprop_into_stmt and because it refrains from

      /* Do not propagate copies if the propagated value is at a deeper loop
         depth than the propagatee.  Otherwise, this may move loop variant
         variables outside of their loops and prevent coalescing
         opportunities.  If the value was loop invariant, it will be hoisted
         by LICM and exposed for copy propagation.  */
      if (loop_depth_of_name (val) > loop_depth_of_name (op))
        return;

thus it won't copyprop out the loop-closed PHI.

A simple solution is to never copy-propagate virtual operands if doing so
does not propagate into all uses.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug tree-optimization/57411] [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize
  2013-05-25  8:28 [Bug tree-optimization/57411] New: [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize zsojka at seznam dot cz
  2013-05-27  8:30 ` [Bug tree-optimization/57411] " rguenth at gcc dot gnu.org
  2013-05-27 12:02 ` rguenth at gcc dot gnu.org
@ 2013-05-28 10:55 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-05-28 10:55 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue May 28 10:54:33 2013
New Revision: 199374

URL: http://gcc.gnu.org/viewcvs?rev=199374&root=gcc&view=rev
Log:
2013-05-28  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/57411
    * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
    virtual operands.
    * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
    virtual operand propagation.

    * g++.dg/opt/pr57411.C: New testcase.

Added:
    trunk/gcc/testsuite/g++.dg/opt/pr57411.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-copy.c
    trunk/gcc/tree-ssa-dom.c


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-05-28 10:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-25  8:28 [Bug tree-optimization/57411] New: [4.9 Regression] ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize zsojka at seznam dot cz
2013-05-27  8:30 ` [Bug tree-optimization/57411] " rguenth at gcc dot gnu.org
2013-05-27 12:02 ` rguenth at gcc dot gnu.org
2013-05-28 10:55 ` rguenth 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).