slp pass assert when compiler configure with --enable-checking

Bug #960283 reported by mickael guene
28
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Linaro GCC
Fix Released
High
Ulrich Weigand
4.6
Fix Released
High
Ulrich Weigand
4.7
Fix Released
High
Ulrich Weigand

Bug Description

When compiling attached small.c file with linaro-4.6-2012.03 configured with --enable-checking and gcc options :
gcc -c small.c -msoft-float -march=armv7-a -mfloat-abi=softfp -mfpu=neon -mvectorize-with-neon-quad -ftree-vectorize -O2

I have a great number of assertion due to access to unallocated memory.
patch from Bug #960274 plus attached patch fix them all (certainly badly)

I have not done a very deep analysis but either analysis pass make a wrong decision when applying slp optimization or
code is seriously bugged.

Revision history for this message
mickael guene (mickael-guene) wrote :
Revision history for this message
mickael guene (mickael-guene) wrote :
description: updated
Revision history for this message
Ulrich Weigand (uweigand) wrote :

Thanks for the bug report. I can confirm this also with current mainline. I'll have a look.

Changed in gcc-linaro:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Ulrich Weigand (uweigand)
Changed in gcc-linaro:
status: Confirmed → In Progress
Revision history for this message
Ulrich Weigand (uweigand) wrote :

It seems the root cause of all the memory problems is that vect_get_smallest_scalar_type neglected to handle WIDEN_LSHIFT_EXPR, which causes the SLP pass to mis-compute the number of statements needed to vectorize the expression. The attached patch (together with your patch from #960274) fixes the ICEs for me ...

Revision history for this message
mickael guene (mickael-guene) wrote :

  I have test patch from #960274 + your patch and now it works well.
 Thanks for the fix

Revision history for this message
Ulrich Weigand (uweigand) wrote :
Revision history for this message
Ulrich Weigand (uweigand) wrote :

Fix committed to mainline, Linaro GCC 4.6, and Linaro GCC 4.7.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.