aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramylaar <>2009-06-17 03:27:29 +0000
committeramylaar <>2009-06-17 03:27:29 +0000
commit954703eec4cc7b5294b8caf677bb98223c8583d6 (patch)
tree75055c8521e11ff9148fa449d096fd1679fe7b12
parent0f2f05f041d92b1ea9e9285fe06bae8ea619722a (diff)
* 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.
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/rs6000.c8
2 files changed, 8 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fff4dd18138..0b736d6b81d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 7e923fbcc15..592d8dd4fb1 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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. */