Classifies a pair (caller, callee) into one of four categories:
(a) inlining should be performed, classified in turn into:
(a.1) InlineableAtThisCaller: unconditionally at this caller
(a.2) FeasibleInline: it only remains for certain access requirements to be met (see IMethodInfo.accessRequirements())
(b) inlining shouldn't be performed, classified in turn into:
(b.1) DontInlineHere: indicates that this particular occurrence of the callee at the caller shouldn't be inlined.
Nothing is said about the outcome for other callers, or for other occurrences of the callee for the same caller.
In particular inlining might be possible, but heuristics gave a low score for it.
(b.2) NeverSafeToInline: the callee can't be inlined anywhere, irrespective of caller.
The classification above is computed by isStampedForInlining() based on which analyzeInc() goes on to:
either log the reason for failure --- case (b) ---,
This member is added by an implicit conversion from InlineSafetyInfo to
StringFormat[InlineSafetyInfo] performed by method StringFormat in scala.Predef.
Classifies a pair (caller, callee) into one of four categories:
(a) inlining should be performed, classified in turn into: (a.1)
InlineableAtThisCaller
: unconditionally at this caller (a.2)FeasibleInline
: it only remains for certain access requirements to be met (seeIMethodInfo.accessRequirements()
)(b) inlining shouldn't be performed, classified in turn into: (b.1)
DontInlineHere
: indicates that this particular occurrence of the callee at the caller shouldn't be inlined.NeverSafeToInline
: the callee can't be inlined anywhere, irrespective of caller.The classification above is computed by
isStampedForInlining()
based on whichanalyzeInc()
goes on to: