------- Comment #12 from janis at gcc dot gnu dot org  2009-03-19 17:00 -------
I tested this patch, which I assume is what was described in comment #11:

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c  (revision 144923)
+++ gcc/config/rs6000/rs6000.c  (working copy)
@@ -5206,15 +5206,6 @@ rs6000_emit_move (rtx dest, rtx source, 
               && ! 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.  */
          if (DEFAULT_ABI == ABI_DARWIN && MACHOPIC_INDIRECT)

I bootstrapped all languages except Ada on powerpc64-unknown-linux-gnu and ran
the testsuite with -m32/-m64, and the only change was that test va-arg-trap-1
now passes.


-- 

janis at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dje at gcc dot gnu dot org,
                   |                            |janis at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39254

Reply via email to