https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121692

--- Comment #6 from jchrist at linux dot ibm.com ---
(In reply to Jan Hubicka from comment #5)
> Inliner does not track argument as a constant and predicates does not have
> condition "op is not constant". So we end up accounting __builtin_constant_p
> path as well as !builting_constant_p path.

That is find, but the builtin_constant_p path should really be small since it
folds to a constant.

> This is kind of necessary, since inliner does not have enough info to tell
> that __builtin_constant_p will be false after inlinng.

Does that mean __builtin_constant_p cannot be used to optimize such functions
in the presence of cold functions without forcing the function inline via
always_inline?

Reply via email to