mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			[PATCH] Partially fix PR61529, bound basic block frequency
2014-11-10  Renlin Li <Renlin.Li@arm.com>
  PR middle-end/61529
  gcc/
    * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
  gcc/testsuite/
    * gcc.dg/pr61529.c: New.
From-SVN: r217303
			
			
This commit is contained in:
		
							parent
							
								
									a25efea086
								
							
						
					
					
						commit
						202d59415f
					
				|  | @ -1,3 +1,8 @@ | ||||||
|  | 2014-11-10  Renlin Li  <renlin.li@arm.com> | ||||||
|  | 
 | ||||||
|  | 	PR middle-end/61529 | ||||||
|  | 	* tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq. | ||||||
|  | 
 | ||||||
| 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com> | 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com> | ||||||
| 
 | 
 | ||||||
| 	* expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to | 	* expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to | ||||||
|  |  | ||||||
|  | @ -1,3 +1,8 @@ | ||||||
|  | 2014-11-10  Renlin Li  <renlin.li@arm.com> | ||||||
|  | 
 | ||||||
|  | 	PR middle-end/61529 | ||||||
|  | 	* gcc.dg/pr61529.c: New. | ||||||
|  | 
 | ||||||
| 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com> | 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com> | ||||||
| 
 | 
 | ||||||
| 	* lib/target-supports.exp (check_effective_target_return_address): | 	* lib/target-supports.exp (check_effective_target_return_address): | ||||||
|  |  | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | /* PR middle-end/61529 */ | ||||||
|  | /* { dg-do compile } */ | ||||||
|  | /* { dg-options "-O3" } */ | ||||||
|  | 
 | ||||||
|  | unsigned int a = 0, b = 0; | ||||||
|  | unsigned int c; | ||||||
|  | 
 | ||||||
|  | int | ||||||
|  | main () | ||||||
|  | { | ||||||
|  |   unsigned int d = 0; | ||||||
|  |   int e[5]; | ||||||
|  | 
 | ||||||
|  |   for (; b < 1; b++) | ||||||
|  |     d = 0; | ||||||
|  |   for (; d < 1; d++) | ||||||
|  |     a = 0; | ||||||
|  |   for (; a < 1; a++) | ||||||
|  |     ; | ||||||
|  | 
 | ||||||
|  |   for (c = 0; c < 5; c++) | ||||||
|  |     e[c] = 1; | ||||||
|  |   if (e[0]) | ||||||
|  |     c = 0; | ||||||
|  | 
 | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  | @ -734,6 +734,11 @@ compute_path_counts (struct redirection_data *rd, | ||||||
|             nonpath_count += ein->count; |             nonpath_count += ein->count; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |   /* This is needed due to insane incoming frequencies.  */ | ||||||
|  |   if (path_in_freq > BB_FREQ_MAX) | ||||||
|  |     path_in_freq = BB_FREQ_MAX; | ||||||
|  | 
 | ||||||
|   BITMAP_FREE (in_edge_srcs); |   BITMAP_FREE (in_edge_srcs); | ||||||
| 
 | 
 | ||||||
|   /* Now compute the fraction of the total count coming into the first
 |   /* Now compute the fraction of the total count coming into the first
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Renlin Li
						Renlin Li