2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-04-15 12:50:59 +08:00

re PR target/39254 (gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9)

PR target/39254
        * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
        for the symbol ref of a constant that is the source of a move
        - nor for any other not-obvious-label-ref constants.

Co-Authored-By: Janis Johnson <janis187@us.ibm.com>

From-SVN: r148568
This commit is contained in:
J"orn Rennecke 2009-06-17 04:27:29 +00:00 committed by Joern Rennecke
parent 8dd1bca076
commit a4d99c865e
2 changed files with 8 additions and 8 deletions
gcc
ChangeLog
config/rs6000

@ -1,3 +1,11 @@
2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
Janis Johnson <janis187@us.ibm.com>
PR target/39254
* config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
for the symbol ref of a constant that is the source of a move
- nor for any other not-obvious-label-ref constants.
2009-06-16 Olatunji Ruwase <tjruwase@google.com>
* plugin.c(position_pass): Skip newly inserted pass during list

@ -5204,14 +5204,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
&& ! legitimate_constant_pool_address_p (operands[1])
&& ! toc_relative_expr_p (operands[1]))
{
/* Emit a USE operation so that the constant isn't deleted if
expensive optimizations are turned on because nobody
references it. This should only be done for operands that
contain SYMBOL_REFs with CONSTANT_POOL_ADDRESS_P set.
This should not be done for operands that contain LABEL_REFs.
For now, we just handle the obvious case. */
if (GET_CODE (operands[1]) != LABEL_REF)
emit_use (operands[1]);
#if TARGET_MACHO
/* Darwin uses a special PIC legitimizer. */