OSDN Git Service

PR rtl-optimization/35604
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Jun 2008 17:16:05 +0000 (17:16 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 18 Jun 2008 17:16:05 +0000 (17:16 +0000)
* jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
only want to change jump destinations, not eventual label comparisons.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136899 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/jump.c

index e6caaeb..842a63b 100644 (file)
@@ -1,3 +1,10 @@
+2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
+           Ian Lance Taylor  <iant@google.com>
+
+       PR rtl-optimization/35604
+       * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
+       only want to change jump destinations, not eventual label comparisons.
+
 2008-06-16  Jan Hubicka  <jh@suse.cz>
 
        * cgraphunit.c (cgraph_expand_pending_functions): Give up at
 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/36506
-       * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
-       warning.
+       * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
 
 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
 
 
 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
 
-       * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
-       w64 abi.
+       * config/i386/i386.c (ix86_compute_frame_layout): Disable
+       red zone for w64 abi.
        (ix86_expand_prologue): Likewise.
        (ix86_force_to_memory): Likewise.
        (ix86_free_from_memory): Likewise.
 
        PR target/36425
        * config/rs6000/rs6000.c (rs6000_override_options): Set
-       rs6000_isel conditionally to the absence of comand line
-       override.
+       rs6000_isel conditionally to the absence of comand line override.
        * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
        Remove duplicate rs6000_isel setting.
        * config/rs6000/eabispe.h: Ditto.
        arch_32 and arch_64.
 
 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
-            Olivier Hainque  <hainque@adacore.com>
+           Olivier Hainque  <hainque@adacore.com>
 
        * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
        Use DECL_SIZE_UNIT to retrieve the size of the field.
        and target endianness differ.
 
 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
-        * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
+
+       * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
        Avoid division by 0.
        (tree_mod_pow2_value_transform): Likewise.
        (tree_ic_transform): Likewise.
index 1aa0c6d..23d183e 100644 (file)
@@ -1327,6 +1327,15 @@ redirect_exp_1 (rtx *loc, rtx olabel, rtx nlabel, rtx insn)
       return;
     }
 
+  if (code == IF_THEN_ELSE)
+    {
+      /* Skip the condition of an IF_THEN_ELSE.  We only want to
+         change jump destinations, not eventual label comparisons.  */
+      redirect_exp_1 (&XEXP (x, 1), olabel, nlabel, insn);
+      redirect_exp_1 (&XEXP (x, 2), olabel, nlabel, insn);
+      return;
+    }
+
   fmt = GET_RTX_FORMAT (code);
   for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
     {