On Sun, Apr 03, 2016 at 06:43:47PM -0500, Bill Schmidt wrote: > --- tree-inline.c (revision 234702) > +++ tree-inline.c (working copy) > @@ -57,8 +57,8 @@ along with GCC; see the file COPYING3. If not see > #include "cfgloop.h" > #include "builtins.h" > #include "tree-chkp.h" > +#include "case-cfn-macros.h" > > - > /* I'm not real happy about this, but we need to handle gimple and > non-gimple trees. */ >
Please keep the extra empty line above. > @@ -4070,11 +4070,9 @@ estimate_num_insns (gimple *stmt, eni_weights *wei > /* We canonicalize x * x to pow (x, 2.0) with -ffast-math, so > specialize the cheap expansion we do here. > ??? This asks for a more general solution. */ > - switch (DECL_FUNCTION_CODE (decl)) > + switch (gimple_call_combined_fn (stmt)) > { > - case BUILT_IN_POW: > - case BUILT_IN_POWF: > - case BUILT_IN_POWL: > + CASE_CFN_POW: > if (TREE_CODE (gimple_call_arg (stmt, 1)) == REAL_CST > && (real_equal > (&TREE_REAL_CST (gimple_call_arg (stmt, 1)), Actually, I haven't been suggesting to use gimple_call_combined_fn, but gimple_call_builtin_p. Here using gimple_call_combined_fn doesn't make much sense, because it is in code guarded with: if (gimple_call_internal_p (stmt)) return 0; else if ((decl = gimple_call_fndecl (stmt)) && DECL_BUILT_IN (decl)) { ... else if (DECL_BUILT_IN_CLASS (decl) == BUILT_IN_NORMAL) { Thus, internal functions don't make this spot at all. So, either replace the DECL_BUILT_IN_CLASS (decl) == BUILT_IN_NORMAL with gimple_builtin_call_p (stmt, BUILT_IN_NORMAL); or call gimple_builtin_call_types_compatible_p. > Index: tree-ssa-math-opts.c > =================================================================== > --- tree-ssa-math-opts.c (revision 234702) > +++ tree-ssa-math-opts.c (working copy) > @@ -3829,11 +3829,9 @@ pass_optimize_widening_mul::execute (function *fun > if (fndecl > && DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL) > { > - switch (DECL_FUNCTION_CODE (fndecl)) > + switch (gimple_call_combined_fn (stmt)) > { > - case BUILT_IN_POWF: > - case BUILT_IN_POW: > - case BUILT_IN_POWL: > + CASE_CFN_POW: > if (TREE_CODE (gimple_call_arg (stmt, 1)) == REAL_CST > && real_equal > (&TREE_REAL_CST (gimple_call_arg (stmt, 1)), > And similarly here. Jakub