On 04/07/2017 05:45 PM, Jakub Jelinek wrote:
On Fri, Apr 07, 2017 at 12:04:16PM -0400, Vladimir Makarov wrote:
Index: ChangeLog
===================================================================
--- ChangeLog (revision 246763)
+++ ChangeLog (working copy)
@@ -1,3 +1,9 @@
+2017-04-07 Vladimir Makarov <vmaka...@redhat.com>
+
+ PR rtl-optimization/70478
+ * lra-constraints.c (process_alt_operands): Disfavor alternative
+ insn memory operands.
This has regressed:
+UNRESOLVED: gfortran.dg/pr68627.f -O scan-assembler-not vbroadcastsd[
\\\\t]+%xmm[0-9]+, %ymm[0-9]+
+FAIL: gfortran.dg/pr68627.f -O (internal compiler error)
+FAIL: gfortran.dg/pr68627.f -O (test for excess errors)
on x86_64-linux, starting with r246764 there is ICE:
Error: unable to find a register to spill
pr68627.f:16:0: Error: this is the insn:
(insn 202 1300 1177 12 (set (reg:V2DF 1306 [785])
(vec_concat:V2DF (reg:DF 1307 [orig:259 _282 ] [259])
(reg:DF 1421 [orig:263 _313 ] [263]))) "pr68627.f":11 2727
{vec_concatv2df}
(expr_list:REG_DEAD (reg:DF 1421 [orig:263 _313 ] [263])
(expr_list:REG_DEAD (reg:DF 1307 [orig:259 _282 ] [259])
(nil))))
pr68627.f:16:0: internal compiler error: in assign_by_spills, at
lra-assigns.c:1476
Thanks, Jakub. I used only check-gcc on 3 platforms to check the
patch. I should have checked other languages too.
Meanwhile, I've reversed the patch. I'll continue work on the PR.