Commit 5ab2422a by Eric Botcazou Committed by Eric Botcazou

cif-code.def (NEVER_CALL): New code.

	* cif-code.def (NEVER_CALL): New code.
	* ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
	Set the failure to CIF_NEVER_CALL if the IPA count is zero.

From-SVN: r273804
parent 75088696
2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
* cif-code.def (NEVER_CALL): New code.
* ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
Set the failure to CIF_NEVER_CALL if the IPA count is zero.
2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
* config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
......
......@@ -83,6 +83,10 @@ DEFCIFCODE(RECURSIVE_INLINING, CIF_FINAL_NORMAL,
DEFCIFCODE(UNLIKELY_CALL, CIF_FINAL_NORMAL,
N_("call is unlikely and code size would grow"))
/* Call is considered never executed. */
DEFCIFCODE(NEVER_CALL, CIF_FINAL_NORMAL,
N_("call is considered never executed and code size would grow"))
/* Function is not declared as inline. */
DEFCIFCODE(NOT_DECLARED_INLINED, CIF_FINAL_NORMAL,
N_("function not declared inline and code size would grow"))
......
......@@ -810,7 +810,7 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report)
| INLINE_HINT_loop_stride))
&& !(big_speedup = big_speedup_p (e)))))
{
e->inline_failed = CIF_MAX_INLINE_INSNS_SINGLE_LIMIT;
e->inline_failed = CIF_MAX_INLINE_INSNS_SINGLE_LIMIT;
want_inline = false;
}
else if (!DECL_DECLARED_INLINE_P (callee->decl)
......@@ -818,12 +818,12 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report)
&& growth >= PARAM_VALUE (PARAM_MAX_INLINE_INSNS_SMALL))
{
/* growth_likely_positive is expensive, always test it last. */
if (growth >= MAX_INLINE_INSNS_SINGLE
if (growth >= MAX_INLINE_INSNS_SINGLE
|| growth_likely_positive (callee, growth))
{
e->inline_failed = CIF_NOT_DECLARED_INLINED;
e->inline_failed = CIF_NOT_DECLARED_INLINED;
want_inline = false;
}
}
}
/* Apply MAX_INLINE_INSNS_AUTO limit for functions not declared inline
Upgrade it to MAX_INLINE_INSNS_SINGLE when hints suggests that
......@@ -839,19 +839,22 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report)
&& !(big_speedup == -1 ? big_speedup_p (e) : big_speedup))
{
/* growth_likely_positive is expensive, always test it last. */
if (growth >= MAX_INLINE_INSNS_SINGLE
if (growth >= MAX_INLINE_INSNS_SINGLE
|| growth_likely_positive (callee, growth))
{
e->inline_failed = CIF_MAX_INLINE_INSNS_AUTO_LIMIT;
want_inline = false;
}
}
}
/* If call is cold, do not inline when function body would grow. */
else if (!e->maybe_hot_p ()
&& (growth >= MAX_INLINE_INSNS_SINGLE
|| growth_likely_positive (callee, growth)))
{
e->inline_failed = CIF_UNLIKELY_CALL;
if (e->count.ipa () == profile_count::zero ())
e->inline_failed = CIF_NEVER_CALL;
else
e->inline_failed = CIF_UNLIKELY_CALL;
want_inline = false;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment