Commit 39c1b6db by Marek Polacek Committed by Marek Polacek

re PR tree-optimization/48186 (ICE: SIGFPE (division by zero) in…

re PR tree-optimization/48186 (ICE: SIGFPE (division by zero) in maybe_hot_frequency_p at predict.c:129 with --param hot-bb-frequency-fraction=0 on basic code)

        PR tree-optimization/48186
        * predict.c (maybe_hot_frequency_p): Return false if
        HOT_BB_FREQUENCY_FRACTION is 0.
        (cgraph_maybe_hot_edge_p): Likewise.

        * gcc.dg/pr48186.c: New test.

From-SVN: r197487
parent 314f64eb
2013-04-04 Marek Polacek <polacek@redhat.com>
PR tree-optimization/48186
* predict.c (maybe_hot_frequency_p): Return false if
HOT_BB_FREQUENCY_FRACTION is 0.
(cgraph_maybe_hot_edge_p): Likewise.
2013-04-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/56826
......
......@@ -122,6 +122,8 @@ maybe_hot_frequency_p (struct function *fun, int freq)
if (node->frequency == NODE_FREQUENCY_EXECUTED_ONCE
&& freq < (ENTRY_BLOCK_PTR_FOR_FUNCTION (fun)->frequency * 2 / 3))
return false;
if (PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION) == 0)
return false;
if (freq < (ENTRY_BLOCK_PTR_FOR_FUNCTION (fun)->frequency
/ PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION)))
return false;
......@@ -202,10 +204,13 @@ cgraph_maybe_hot_edge_p (struct cgraph_edge *edge)
if (edge->caller->frequency == NODE_FREQUENCY_EXECUTED_ONCE
&& edge->frequency < CGRAPH_FREQ_BASE * 3 / 2)
return false;
if (flag_guess_branch_prob
&& edge->frequency <= (CGRAPH_FREQ_BASE
/ PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION)))
return false;
if (flag_guess_branch_prob)
{
if (PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION) == 0
|| edge->frequency <= (CGRAPH_FREQ_BASE
/ PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION)))
return false;
}
return true;
}
......
2013-04-04 Marek Polacek <polacek@redhat.com>
PR tree-optimization/48186
* gcc.dg/pr48186.c: New test.
2013-04-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/56826
......
/* PR tree-optimization/48186 */
/* { dg-do compile } */
/* { dg-options "-O --param hot-bb-frequency-fraction=0" } */
void foo (void) { }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment