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

--- Comment #19 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Xi Ruoyao from comment #17)
> (In reply to H.J. Lu from comment #16)
> > Created attachment 55409 [details]
> > A patch
> > 
> > I am stilling trying to find a small testcase.
> 
> The patch triggers an ICE building Spidermonkey 115b9 (it segfaults with GCC
> trunk because of some unaligned vmovdqa):
> 
> 0x93297b ix86_finalize_stack_frame_flags
>       ../../gcc/gcc/config/i386/i386.cc:8224
> 0x162064c ix86_expand_epilogue(int)
>       ../../gcc/gcc/config/i386/i386.cc:9405
> 0x1b2e27f gen_epilogue()
>       ../../gcc/gcc/config/i386/i386.md:17517
> 0x160a815 target_gen_epilogue
>       ../../gcc/gcc/config/i386/i386.md:17013
> 0xf15e86 make_epilogue_seq
>       ../../gcc/gcc/function.cc:5964
> 0xf15f8b thread_prologue_and_epilogue_insns()
>       ../../gcc/gcc/function.cc:6046
> 0xf166c2 rest_of_handle_thread_prologue_and_epilogue
>       ../../gcc/gcc/function.cc:6544
> 0xf166c2 execute
>       ../../gcc/gcc/function.cc:6625
> 
> The code at i386.cc:8224 reads:
> 
>   if (crtl->stack_realign_finalized)
>     {
>       /* After stack_realign_needed is finalized, we can't no longer
>          change it.  */
>       gcc_assert (crtl->stack_realign_needed == stack_realign);
>       return;
>     }
> 
> I'm not sure if the assert should be dropped or it's more difficult.
> 
> Or can we just force to use unaligned vector moves for block operations
> until we can find a better solution?  It's at least better than leaving the
> vectorized block moving broken and forcing people trying to disable the
> feature.

Do you have a testcase?

Reply via email to