diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ba7196647da6ec289228961156d49ce643ea1271..d61d7065471ed0665046acbd9bd03a1551a75d8c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
+	(asm_file_start): Remove.
+	(spu_machine_dependent_reorg): Call compute_bb_for_insn and
+	free_bb_for_insn around code that modifies insns before
+	restarting df analysis.
+
 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	PR target/49541
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 63985e1a76244d1099fef7a1fbec0d78bf5aa75e..6d168faff359d29d5608f925ed15d938dcc32220 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -224,7 +224,6 @@ static enum machine_mode spu_addr_space_address_mode (addr_space_t);
 static bool spu_addr_space_subset_p (addr_space_t, addr_space_t);
 static rtx spu_addr_space_convert (rtx, tree, tree);
 static int spu_sms_res_mii (struct ddg *g);
-static void asm_file_start (void);
 static unsigned int spu_section_type_flags (tree, const char *, int);
 static section *spu_select_section (tree, int, unsigned HOST_WIDE_INT);
 static void spu_unique_section (tree, int);
@@ -462,9 +461,6 @@ static void spu_setup_incoming_varargs (cumulative_args_t cum,
 #undef TARGET_SCHED_SMS_RES_MII
 #define TARGET_SCHED_SMS_RES_MII spu_sms_res_mii
 
-#undef TARGET_ASM_FILE_START
-#define TARGET_ASM_FILE_START asm_file_start
-
 #undef TARGET_SECTION_TYPE_FLAGS
 #define TARGET_SECTION_TYPE_FLAGS spu_section_type_flags
 
@@ -2703,9 +2699,11 @@ spu_machine_dependent_reorg (void)
     {
       /* We still do it for unoptimized code because an external
          function might have hinted a call or return. */
+      compute_bb_for_insn ();
       insert_hbrp ();
       pad_bb ();
       spu_var_tracking ();
+      free_bb_for_insn ();
       return;
     }
 
@@ -7039,14 +7037,6 @@ spu_libgcc_shift_count_mode (void)
   return SImode;
 }
 
-/* An early place to adjust some flags after GCC has finished processing
- * them. */
-static void
-asm_file_start (void)
-{
-  default_file_start ();
-}
-
 /* Implement targetm.section_type_flags.  */
 static unsigned int
 spu_section_type_flags (tree decl, const char *name, int reloc)