mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			re PR ipa/58862 (LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008)
2013-10-29 Teresa Johnson <tejohnson@google.com> PR ipa/58862 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile insanities when updating probabilities. From-SVN: r204178
This commit is contained in:
		
							parent
							
								
									258125712b
								
							
						
					
					
						commit
						b6c0035364
					
				|  | @ -1,3 +1,9 @@ | |||
| 2013-10-29  Teresa Johnson  <tejohnson@google.com> | ||||
| 
 | ||||
| 	PR ipa/58862 | ||||
| 	* tree-ssa-tail-merge.c (replace_block_by): Tolerate profile | ||||
| 	insanities when updating probabilities. | ||||
| 
 | ||||
| 2013-10-29  David Malcolm  <dmalcolm@redhat.com> | ||||
| 
 | ||||
| 	* gdbhooks.py (CGraphNodePrinter.to_string): Update gdb | ||||
|  |  | |||
|  | @ -1467,7 +1467,7 @@ static void | |||
| replace_block_by (basic_block bb1, basic_block bb2) | ||||
| { | ||||
|   edge pred_edge; | ||||
|   edge e1; | ||||
|   edge e1, e2; | ||||
|   edge_iterator ei; | ||||
|   unsigned int i; | ||||
|   gimple bb2_phi; | ||||
|  | @ -1502,15 +1502,21 @@ replace_block_by (basic_block bb1, basic_block bb2) | |||
|   bb2->count += bb1->count; | ||||
| 
 | ||||
|   /* Merge the outgoing edge counts from bb1 onto bb2.  */ | ||||
|   gcov_type out_sum = 0; | ||||
|   FOR_EACH_EDGE (e1, ei, bb1->succs) | ||||
|     { | ||||
|       edge e2; | ||||
|       e2 = find_edge (bb2, e1->dest); | ||||
|       gcc_assert (e2); | ||||
|       e2->count += e1->count; | ||||
|       /* Recompute the probability from the new merged edge count (bb2->count
 | ||||
|          was updated above).  */ | ||||
|       e2->probability = GCOV_COMPUTE_SCALE (e2->count, bb2->count); | ||||
|       out_sum += e2->count; | ||||
|     } | ||||
|   /* Recompute the edge probabilities from the new merged edge count.
 | ||||
|      Use the sum of the new merged edge counts computed above instead | ||||
|      of bb2's merged count, in case there are profile count insanities | ||||
|      making the bb count inconsistent with the edge weights.  */ | ||||
|   FOR_EACH_EDGE (e2, ei, bb2->succs) | ||||
|     { | ||||
|       e2->probability = GCOV_COMPUTE_SCALE (e2->count, out_sum); | ||||
|     } | ||||
| 
 | ||||
|   /* Do updates that use bb1, before deleting bb1.  */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Teresa Johnson
						Teresa Johnson