This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix PR58656


This fixes an unintended side-effect of the PR58464 fix, caching
failed translations has issues with insertion iteration.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2013-10-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58656
	* tree-ssa-pre.c (phi_translate): Do not cache failed
	translations.

Index: gcc/tree-ssa-pre.c
===================================================================
*** gcc/tree-ssa-pre.c	(revision 203356)
--- gcc/tree-ssa-pre.c	(working copy)
*************** phi_translate (pre_expr expr, bitmap_set
*** 1758,1764 ****
    phitrans = phi_translate_1 (expr, set1, set2, pred, phiblock);
  
    if (slot)
!     slot->v = phitrans;
  
    return phitrans;
  }
--- 1758,1771 ----
    phitrans = phi_translate_1 (expr, set1, set2, pred, phiblock);
  
    if (slot)
!     {
!       if (phitrans)
! 	slot->v = phitrans;
!       else
! 	/* Remove failed translations again, they cause insert
! 	   iteration to not pick up new opportunities reliably.  */
! 	phi_translate_table.remove_elt_with_hash (slot, slot->hashcode);
!     }
  
    return phitrans;
  }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]