[llvm-bugs] [Bug 30626] New: Compiler crash inside SLP Vectorizer ("Use still stuck around after Def is destroyed")

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Oct 6 13:50:30 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=30626

            Bug ID: 30626
           Summary: Compiler crash inside SLP Vectorizer ("Use still stuck
                    around after Def is destroyed")
           Product: tools
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: opt
          Assignee: unassignedbugs at nondot.org
          Reporter: charles_li at playstation.sony.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 17409
  --> https://llvm.org/bugs/attachment.cgi?id=17409&action=edit
test case that causes ICE

Hi Everyone,

I have found a compiler crash bug. 
Attached are the test case and the crash log.
To reproduce this ICE, compile using the following command.

  $ clang  -c -ffast-math -fslp-vectorize -O1 -march=btver2 test.cpp


I have triaged the history of this bug.

  1. ICE started at commit r253240.
  2. ICE went away at commit r258830.
  3. ICE resurfaced when commit r258830 was reverted at r278938.
  4. As of today, this ICE still exists.


FYI, the Commit Logs for r253240, r258830 and r278938.

$ svn log -r 253240
------------------------------------------------------------------------
r253240 | resistor | 2015-11-16 10:07:30 -0800 (Mon, 16 Nov 2015) | 7 lines

Add intermediate subtract instructions to reassociation worklist.

We sometimes create intermediate subtract instructions during
reassociation.  Adding these to the worklist to revisit exposes many
additional reassociation opportunities.

Patch by Aditya Nandakumar.
------------------------------------------------------------------------

$ svn log -r 258830
------------------------------------------------------------------------
r258830 | aditya_nandakumar | 2016-01-26 10:42:36 -0800 (Tue, 26 Jan 2016) | 7
lines

Reassociate: Reprocess RedoInsts after each inst

Previously the RedoInsts was processed at the end of the block.
However it was possible that it left behind some instructions that
were not canonicalized.
This should guarantee that any previous instruction in the basic
block is canonicalized before we process a new instruction.
------------------------------------------------------------------------

$ svn log -r 278938
------------------------------------------------------------------------
r278938 | mcrosier | 2016-08-17 08:54:39 -0700 (Wed, 17 Aug 2016) | 5 lines

Revert "Reassociate: Reprocess RedoInsts after each inst".

This reverts commit r258830, which introduced a bug described in PR28367.

PR28367
------------------------------------------------------------------------

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161006/b2ca29e6/attachment.html>


More information about the llvm-bugs mailing list