+2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/70478
+ * lra-constraints.c (process_alt_operands): Disfavor alternative
+ insn memory operands.
+
2017-04-07 Jeff Law <law@redhat.com>
* config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
}
}
+ /* When we use memory operand, the insn should read the
+ value from memory and even if we just wrote a value
+ into the memory it is costly in comparison with an
+ insn alternative which does not use memory
+ (e.g. register or immediate operand). */
+ if (no_regs_p && offmemok)
+ {
+ if (lra_dump_file != NULL)
+ fprintf
+ (lra_dump_file,
+ " Using memory insn operand %d: reject+=3\n",
+ nop);
+ reject += 3;
+ }
+
#ifdef SECONDARY_MEMORY_NEEDED
/* If reload requires moving value through secondary
memory, it will need one more insn at least. */
+2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/70478
+ * gcc.target/s390/pr70478.c: New.
+
2017-04-07 Martin Liska <mliska@suse.cz>
PR target/79889
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-w -O3 -march=z9-109" } */
+/* { dg-final { scan-assembler-not "stg" } } */
+
+void foo(unsigned int *a, unsigned char *b)
+{
+ *a &= *b;
+}