This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Cleanup and improvement of if-conversion for vectorization
On 30/05/2010 16:23, Richard Guenther wrote:
> On Sat, 29 May 2010, Sebastian Pop wrote:
>
>> On Thu, May 27, 2010 at 04:48, Richard Guenther <rguenther@suse.de> wrote:
>>> On Wed, 26 May 2010, Sebastian Pop wrote:
>>>
>>>> On Wed, May 26, 2010 at 04:19, Richard Guenther <rguenther@suse.de> wrote:
>>>>> I still do not at all understand #3 and #4. Please explain.
>>>> 0002-Predicate-all-the-memory-writes.patch
>>>> 0003-Fix-creation-of-temp-variables.patch
>>>>
>>>> Before #2 the only variables that were created by the if-conversion
>>>> pass were scalar SSA names. #2 allows reads and writes to memory.
>>> What do you mean? In
>>>
>>>> D.2757_29 != 0 ? _ifc_.11 : _ifc_.12;
>>> I see non-SSA names _ifc_.11 and _ifc_.12 - that is not valid gimple.
>>>
>>> Neither would a COND_EXPR RHS with a memory store on the LHS be
>>> valid gimple. I suppose I have to fix the verifier to barf on you
>>> here.
>>>
>>> A COND_EXPR RHS is not a memory load, so the statement should never
>>> get a VOP and thus the alias-oracle need not to care about it.
>> Ok, please fix verify_ssa ().
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
Hey, you guys are talking about SSA and if-cvt? Could this be related to
the ICE I'm seeing at r.159965 on trunk, when this assertion:
> static void
> execute_todo (unsigned int flags)
> {
> #if defined ENABLE_CHECKING
> if (cfun
> && need_ssa_update_p (cfun))
> gcc_assert (flags & TODO_update_ssa_any);
> #endif
... is firing in gcc.c-torture/compile/20040304-1.c at -O3? I added
-fdump-tree-all to the command line from the failing command in gcc.log, and
20040304-1.c.109t.ifcvt is the highest numbered dumpfile that gets generated
before the ICE.
cheers,
DaveK