On 07/18/2014 04:55 AM, Martin Jambor wrote:
Hi,
On Thu, Jul 17, 2014 at 12:26:43PM -0500, Daniel Santos wrote:
I've recently discovered that a function marked always_inline but
called by pointer won't always be inlined. What would it take to
assure that this either always happens or generates an error?
Generally, that is the case. Direct non-inlined calls of
always_inline functions thus indicate that the destination become
known only after inlining in the optimization pipeline. Without more
context, especially without knowing how exactly you call my_quicksort
function, it is impossible to say why. If you cannot povide us with
the source code (I would be interested if you can), you can try
compiling with -fdump-tree-all -fdump-ipa-all-details and go through
the generated dump files to find out at what point it becomes known.
ipa-cp and ipa-inline dumps also contain information about what
inlining context of your function.
Martin
Thank you. I most certainly don't mind sharing all of the sources, they
are just not in a refined state. I have a little time to import them
into github now, but if I run out of time, I'll get them in later today.
Daniel