8257634: C2: Introduce IncrementalInliningForceCleanup diagnostic flag

Reviewed-by: kvn, adityam, thartmann
This commit is contained in:
Vladimir Ivanov 2020-12-04 09:24:08 +00:00
parent af6b7f9c55
commit fd6756ee2b
4 changed files with 8 additions and 1 deletions

@ -70,6 +70,7 @@ NOT_PRODUCT(cflags(PrintIdeal, bool, PrintIdeal, PrintIdeal)) \
cflags(CloneMapDebug, bool, false, CloneMapDebug) \
NOT_PRODUCT(cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel)) \
cflags(VectorizeDebug, uintx, 0, VectorizeDebug) \
cflags(IncrementalInlineForceCleanup, bool, IncrementalInlineForceCleanup, IncrementalInlineForceCleanup) \
cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit)
#else
#define compilerdirectives_c2_flags(cflags)

@ -83,6 +83,7 @@ class methodHandle;
option(Vectorize, "Vectorize", Bool) \
option(VectorizeDebug, "VectorizeDebug", Uintx) \
option(CloneMapDebug, "CloneMapDebug", Bool) \
option(IncrementalInlineForceCleanup, "IncrementalInlineForceCleanup", Bool) \
option(MaxNodeLimit, "MaxNodeLimit", Intx) \
NOT_PRODUCT(option(TestOptionInt, "TestOptionInt", Intx)) \
NOT_PRODUCT(option(TestOptionUint, "TestOptionUint", Uintx)) \

@ -716,6 +716,9 @@
develop(bool, AlwaysIncrementalInline, false, \
"do all inlining incrementally") \
\
product(bool, IncrementalInlineForceCleanup, false, DIAGNOSTIC, \
"do cleanup after every iteration of incremental inlining") \
\
product(intx, LiveNodeCountInliningCutoff, 40000, \
"max number of live nodes in a method") \
range(0, max_juint / 8) \

@ -1880,7 +1880,9 @@ bool Compile::inline_incrementally_one() {
set_inlining_progress(false);
set_do_cleanup(false);
return (_late_inlines.length() > 0) && !needs_cleanup;
bool force_cleanup = directive()->IncrementalInlineForceCleanupOption;
return (_late_inlines.length() > 0) && !needs_cleanup && !force_cleanup;
}
void Compile::inline_incrementally_cleanup(PhaseIterGVN& igvn) {