* lra-spills.c (spill_pseudos): Don't delete debug insns, instead
just invalidate LRA data and reset them. Adjust dump wording.
* gcc.target/i386/pr70596.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234906
138bc75d-0d04-0410-961f-
82ee72b054a4
+2016-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/70596
+ * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
+ just invalidate LRA data and reset them. Adjust dump wording.
+
2016-04-12 Martin Liska <mliska@suse.cz>
Revert
if (removed_pseudo_p)
{
lra_assert (DEBUG_INSN_P (insn));
- lra_set_insn_deleted (insn);
+ lra_invalidate_insn_data (insn);
+ INSN_VAR_LOCATION_LOC (insn) = gen_rtx_UNKNOWN_VAR_LOC ();
if (lra_dump_file != NULL)
fprintf (lra_dump_file,
- "Debug insn #%u is deleted as containing removed pseudo\n",
- INSN_UID (insn));
+ "Debug insn #%u is reset because it referenced "
+ "removed pseudo\n", INSN_UID (insn));
}
bitmap_and_compl_into (df_get_live_in (bb), &spilled_pseudos);
bitmap_and_compl_into (df_get_live_out (bb), &spilled_pseudos);
+2016-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/70596
+ * gcc.target/i386/pr70596.c: New test.
+
2016-04-12 Nathan Sidwell <nathan@acm.org>
PR c++/70501
--- /dev/null
+/* PR rtl-optimization/70596 */
+/* { dg-do compile { target avx512f } } */
+/* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-coalesce-vars -fno-tree-dce -fno-tree-fre -fno-tree-pre -fcompare-debug -mavx512f" } */
+
+typedef char V __attribute__((vector_size (64)));
+
+int
+foo (V u, V v)
+{
+ v /= u | 1;
+ v[18] = 1 | v[8];
+ return v[1] + v[6] + v[0] + v[1] + v[18] + v[2] + v[7];
+}