rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero cost.
authorDavid Edelsohn <dje@gcc.gnu.org>
Wed, 4 Aug 2004 23:38:34 +0000 (19:38 -0400)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 4 Aug 2004 23:38:34 +0000 (19:38 -0400)
        * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
        cost.

From-SVN: r85582

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 9f50220cb06a4f59a37dfd309ff480ee168bf84f..e480dd1e095fb6c246bab9307545adba15970cd2 100644 (file)
@@ -1,3 +1,8 @@
+2004-08-04  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
+       cost.
+
 2004-08-04  Jan Hubicka  <jh@suse.cz>
 
        * basic-block.h (profile_staus): New global variable.
        * config/i386/xmmintrin.h: Include <mm_malloc.h>.
 
 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
-           Tanguy FautrÃ\83  <tfautre@pandora.be>
+           Tanguy Fautrà <tfautre@pandora.be>
 
        * config/i386/pmm_malloc.h: New file.
 
index b5710946eb3f18b77afd211c3d0c143b605f8b23..035c02599c78af56ba4ca92edf9aaa88cb35044e 100644 (file)
@@ -16520,8 +16520,7 @@ rs6000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED,
 
   switch (code)
     {
-      /* On the RS/6000, if it is valid in the insn, it is free.
-        So this always returns 0.  */
+      /* On the RS/6000, if it is valid in the insn, it is free.  */
     case CONST_INT:
       if (((outer_code == SET
            || outer_code == PLUS
@@ -16591,7 +16590,6 @@ rs6000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED,
 
     case CONST:
     case HIGH:
-    case LABEL_REF:
     case SYMBOL_REF:
     case MEM:
       /* When optimizing for size, MEM should be slightly more expensive
@@ -16600,6 +16598,10 @@ rs6000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED,
       *total = optimize_size ? COSTS_N_INSNS (1) + 1 : COSTS_N_INSNS (2);
       return true;
 
+    case LABEL_REF:
+      *total = 0;
+      return true;
+
     case PLUS:
       if (mode == DFmode)
        {