@@ -1893,17 +1893,26 @@ def sum_diff(row, col):
18931893 html_color (base_color , "{:,d}" .format (missing_base_contexts )),
18941894 html_color (diff_color , "{:,d}" .format (missing_diff_contexts ))))
18951895
1896- if any (has_diff for (_ , _ , _ , has_diff , _ ) in asm_diffs ):
1896+ def has_diffs (row ):
1897+ return int (row ["Contexts with diffs" ]) > 0
1898+
1899+ # Exclude entire diffs section?
1900+ if any (has_diffs (diff_metrics ["Overall" ]) for (_ , _ , diff_metrics , _ , _ ) in asm_diffs ):
18971901 def write_pivot_section (row ):
1902+ # Exclude this particular Overall/MinOpts/FullOpts table?
1903+ if not any (has_diffs (diff_metrics [row ]) for (_ , _ , diff_metrics , _ , _ ) in asm_diffs ):
1904+ return
1905+
18981906 write_fh .write ("\n <details>\n " )
18991907 sum_base = sum (int (base_metrics [row ]["Diffed code bytes" ]) for (_ , base_metrics , _ , _ , _ ) in asm_diffs )
19001908 sum_diff = sum (int (diff_metrics [row ]["Diffed code bytes" ]) for (_ , _ , diff_metrics , _ , _ ) in asm_diffs )
19011909
19021910 write_fh .write ("<summary>{} ({} bytes)</summary>\n \n " .format (row , format_delta (sum_base , sum_diff )))
19031911 write_fh .write ("|Collection|Base size (bytes)|Diff size (bytes)|\n " )
19041912 write_fh .write ("|---|--:|--:|\n " )
1905- for (mch_file , base_metrics , diff_metrics , has_diffs , _ ) in asm_diffs :
1906- if not has_diffs :
1913+ for (mch_file , base_metrics , diff_metrics , _ , _ ) in asm_diffs :
1914+ # Exclude this particular row?
1915+ if not has_diffs (diff_metrics [row ]):
19071916 continue
19081917
19091918 write_fh .write ("|{}|{:,d}|{}|\n " .format (
@@ -1925,14 +1934,15 @@ def write_pivot_section(row):
19251934 write_fh .write ("\n <details>\n " )
19261935 write_fh .write ("<summary>Details</summary>\n \n " )
19271936
1928- write_fh .write ("|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|\n " )
1929- write_fh .write ("|---|--:|--:|--:|--:|--:|\n " )
1937+ write_fh .write ("|Collection|Diffed contexts|MinOpts|FullOpts|Contexts with diffs| Missed, base|Missed, diff|\n " )
1938+ write_fh .write ("|---|--:|--:|--:|--:|--:|--:| \n " )
19301939 for (mch_file , base_metrics , diff_metrics , has_diffs , jit_analyze_summary_file ) in asm_diffs :
1931- write_fh .write ("|{}|{:,d}|{:,d}|{:,d}|{:,d}|{:,d}|\n " .format (
1940+ write_fh .write ("|{}|{:,d}|{:,d}|{:,d}|{:,d}|{:,d}|{:,d}| \n " .format (
19321941 mch_file ,
19331942 int (diff_metrics ["Overall" ]["Successful compiles" ]),
19341943 int (diff_metrics ["MinOpts" ]["Successful compiles" ]),
19351944 int (diff_metrics ["FullOpts" ]["Successful compiles" ]),
1945+ int (diff_metrics ["Overall" ]["Contexts with diffs" ]),
19361946 int (base_metrics ["Overall" ]["Missing compiles" ]),
19371947 int (diff_metrics ["Overall" ]["Missing compiles" ])))
19381948
@@ -2159,11 +2169,8 @@ def replay_with_throughput_diff(self):
21592169 # instruction count and all collections.
21602170 def is_significant_pct (base , diff ):
21612171 return round ((diff - base ) / base * 100 , 2 ) != 0
2162- def is_significant (base , diff ):
2163- def check (col ):
2164- return is_significant_pct (int (base [col ]["Diff executed instructions" ]), int (diff [col ]["Diff executed instructions" ]))
2165-
2166- return check ("Overall" ) or check ("MinOpts" ) or check ("FullOpts" )
2172+ def is_significant (row , base , diff ):
2173+ return is_significant_pct (int (base [row ]["Diff executed instructions" ]), int (diff [row ]["Diff executed instructions" ]))
21672174 def format_pct (base_instructions , diff_instructions ):
21682175 plus_if_positive = "+" if diff_instructions > base_instructions else ""
21692176 text = "{}{:.2f}%" .format (plus_if_positive , (diff_instructions - base_instructions ) / base_instructions * 100 )
@@ -2173,24 +2180,23 @@ def format_pct(base_instructions, diff_instructions):
21732180
21742181 return text
21752182
2176- significant_diffs = {}
2177- for mch_file , base , diff in tp_diffs :
2178- significant_diffs [mch_file ] = is_significant (base , diff )
2183+ if any (is_significant (row , base , diff ) for row in ["Overall" , "MinOpts" , "FullOpts" ] for (_ , base , diff ) in tp_diffs ):
2184+ def write_pivot_section (row ):
2185+ if not any (is_significant (row , base , diff ) for (_ , base , diff ) in tp_diffs ):
2186+ return
21792187
2180- if any (significant_diffs [mch_file ] for (mch_file , _ , _ ) in tp_diffs ):
2181- def write_pivot_section (col ):
21822188 write_fh .write ("\n <details>\n " )
2183- sum_base = sum (int (base_metrics [col ]["Diff executed instructions" ]) for (_ , base_metrics , _ ) in tp_diffs )
2184- sum_diff = sum (int (diff_metrics [col ]["Diff executed instructions" ]) for (_ , _ , diff_metrics ) in tp_diffs )
2189+ sum_base = sum (int (base_metrics [row ]["Diff executed instructions" ]) for (_ , base_metrics , _ ) in tp_diffs )
2190+ sum_diff = sum (int (diff_metrics [row ]["Diff executed instructions" ]) for (_ , _ , diff_metrics ) in tp_diffs )
21852191
2186- write_fh .write ("<summary>{} ({})</summary>\n \n " .format (col , format_pct (sum_base , sum_diff )))
2192+ write_fh .write ("<summary>{} ({})</summary>\n \n " .format (row , format_pct (sum_base , sum_diff )))
21872193 write_fh .write ("|Collection|PDIFF|\n " )
21882194 write_fh .write ("|---|--:|\n " )
21892195 for mch_file , base , diff in tp_diffs :
2190- base_instructions = int (base [col ]["Diff executed instructions" ])
2191- diff_instructions = int (diff [col ]["Diff executed instructions" ])
2196+ base_instructions = int (base [row ]["Diff executed instructions" ])
2197+ diff_instructions = int (diff [row ]["Diff executed instructions" ])
21922198
2193- if significant_diffs [ mch_file ] :
2199+ if is_significant ( row , base , diff ) :
21942200 write_fh .write ("|{}|{}|\n " .format (
21952201 mch_file ,
21962202 format_pct (base_instructions , diff_instructions )))
@@ -2206,13 +2212,13 @@ def write_pivot_section(col):
22062212
22072213 write_fh .write ("\n <details>\n " )
22082214 write_fh .write ("<summary>Details</summary>\n \n " )
2209- for (disp , col ) in [("All" , "Overall" ), ("MinOpts" , "MinOpts" ), ("FullOpts" , "FullOpts" )]:
2215+ for (disp , row ) in [("All" , "Overall" ), ("MinOpts" , "MinOpts" ), ("FullOpts" , "FullOpts" )]:
22102216 write_fh .write ("{} contexts:\n \n " .format (disp ))
22112217 write_fh .write ("|Collection|Base # instructions|Diff # instructions|PDIFF|\n " )
22122218 write_fh .write ("|---|--:|--:|--:|\n " )
22132219 for mch_file , base , diff in tp_diffs :
2214- base_instructions = int (base [col ]["Diff executed instructions" ])
2215- diff_instructions = int (diff [col ]["Diff executed instructions" ])
2220+ base_instructions = int (base [row ]["Diff executed instructions" ])
2221+ diff_instructions = int (diff [row ]["Diff executed instructions" ])
22162222 write_fh .write ("|{}|{:,d}|{:,d}|{}|\n " .format (
22172223 mch_file , base_instructions , diff_instructions ,
22182224 format_pct (base_instructions , diff_instructions )))
0 commit comments