[Bug middle-end/40106] [4.4/4.5 Regression] Weird interaction between optimize_insn_for_speed_p and -funsafe-math-optimizations

dominiq at lps dot ens dot fr gcc-bugzilla@gcc.gnu.org
Sat Mar 20 13:03:00 GMT 2010



------- Comment #50 from dominiq at lps dot ens dot fr  2010-03-20 13:02 -------
> optimize_insn_for_speed_p is more precise in that it allows hot functions
> to be optimized for speed even with -Os.  This is quite important for
> embedded targets where you generally want to optimize for size but want
> performance sensitive parts to be optimized for speed.

If so, should not 

  return optimize_function_for_size_p (cfun) || !crtl->maybe_hot_insn_p;

be

  return optimize_function_for_size_p (cfun) && !crtl->maybe_hot_insn_p;

i.e., true only if optimize_function_for_size_p is true AND
crtl->maybe_hot_insn_p false?

In the same line, should not

bool
optimize_function_for_size_p (struct function *fun)
{
  return (optimize_size
          || (fun && (fun->function_frequency
                      == FUNCTION_FREQUENCY_UNLIKELY_EXECUTED)));
}

be

bool
optimize_function_for_size_p (struct function *fun)
{
  return (optimize_size
          && (fun && (fun->function_frequency
                      == FUNCTION_FREQUENCY_UNLIKELY_EXECUTED)));
}

?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40106



More information about the Gcc-bugs mailing list