Commit ba03a350 by Uros Bizjak

re PR rtl-optimization/35604 (Label references are not updated after edge insertion)

	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.

From-SVN: r136899
parent fdd7f241
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> 2008-06-16 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_expand_pending_functions): Give up at * cgraphunit.c (cgraph_expand_pending_functions): Give up at
...@@ -436,8 +443,7 @@ ...@@ -436,8 +443,7 @@
2008-06-12 Jakub Jelinek <jakub@redhat.com> 2008-06-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/36506 PR middle-end/36506
* omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
warning.
2008-06-12 Eric Botcazou <ebotcazou@adacore.com> 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
...@@ -482,8 +488,8 @@ ...@@ -482,8 +488,8 @@
2008-06-12 Kai Tietz <kai.tietz@onevision.com> 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
* config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for * config/i386/i386.c (ix86_compute_frame_layout): Disable
w64 abi. red zone for w64 abi.
(ix86_expand_prologue): Likewise. (ix86_expand_prologue): Likewise.
(ix86_force_to_memory): Likewise. (ix86_force_to_memory): Likewise.
(ix86_free_from_memory): Likewise. (ix86_free_from_memory): Likewise.
...@@ -492,8 +498,7 @@ ...@@ -492,8 +498,7 @@
PR target/36425 PR target/36425
* config/rs6000/rs6000.c (rs6000_override_options): Set * config/rs6000/rs6000.c (rs6000_override_options): Set
rs6000_isel conditionally to the absence of comand line rs6000_isel conditionally to the absence of comand line override.
override.
* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
Remove duplicate rs6000_isel setting. Remove duplicate rs6000_isel setting.
* config/rs6000/eabispe.h: Ditto. * config/rs6000/eabispe.h: Ditto.
...@@ -524,7 +529,7 @@ ...@@ -524,7 +529,7 @@
arch_32 and arch_64. arch_32 and arch_64.
2008-06-11 Eric Botcazou <ebotcazou@adacore.com> 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. * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
Use DECL_SIZE_UNIT to retrieve the size of the field. Use DECL_SIZE_UNIT to retrieve the size of the field.
...@@ -559,7 +564,8 @@ ...@@ -559,7 +564,8 @@
and target endianness differ. and target endianness differ.
2008-06-10 Vinodha Ramasamy <vinodha@google.com> 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. Avoid division by 0.
(tree_mod_pow2_value_transform): Likewise. (tree_mod_pow2_value_transform): Likewise.
(tree_ic_transform): Likewise. (tree_ic_transform): Likewise.
......
...@@ -1327,6 +1327,15 @@ redirect_exp_1 (rtx *loc, rtx olabel, rtx nlabel, rtx insn) ...@@ -1327,6 +1327,15 @@ redirect_exp_1 (rtx *loc, rtx olabel, rtx nlabel, rtx insn)
return; 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); fmt = GET_RTX_FORMAT (code);
for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment