mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-17 17:44:40 +02:00
8257634: C2: Introduce IncrementalInliningForceCleanup diagnostic flag
Reviewed-by: kvn, adityam, thartmann
This commit is contained in:
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) \
|
cflags(CloneMapDebug, bool, false, CloneMapDebug) \
|
||||||
NOT_PRODUCT(cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel)) \
|
NOT_PRODUCT(cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel)) \
|
||||||
cflags(VectorizeDebug, uintx, 0, VectorizeDebug) \
|
cflags(VectorizeDebug, uintx, 0, VectorizeDebug) \
|
||||||
|
cflags(IncrementalInlineForceCleanup, bool, IncrementalInlineForceCleanup, IncrementalInlineForceCleanup) \
|
||||||
cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit)
|
cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit)
|
||||||
#else
|
#else
|
||||||
#define compilerdirectives_c2_flags(cflags)
|
#define compilerdirectives_c2_flags(cflags)
|
||||||
|
|
|
@ -83,6 +83,7 @@ class methodHandle;
|
||||||
option(Vectorize, "Vectorize", Bool) \
|
option(Vectorize, "Vectorize", Bool) \
|
||||||
option(VectorizeDebug, "VectorizeDebug", Uintx) \
|
option(VectorizeDebug, "VectorizeDebug", Uintx) \
|
||||||
option(CloneMapDebug, "CloneMapDebug", Bool) \
|
option(CloneMapDebug, "CloneMapDebug", Bool) \
|
||||||
|
option(IncrementalInlineForceCleanup, "IncrementalInlineForceCleanup", Bool) \
|
||||||
option(MaxNodeLimit, "MaxNodeLimit", Intx) \
|
option(MaxNodeLimit, "MaxNodeLimit", Intx) \
|
||||||
NOT_PRODUCT(option(TestOptionInt, "TestOptionInt", Intx)) \
|
NOT_PRODUCT(option(TestOptionInt, "TestOptionInt", Intx)) \
|
||||||
NOT_PRODUCT(option(TestOptionUint, "TestOptionUint", Uintx)) \
|
NOT_PRODUCT(option(TestOptionUint, "TestOptionUint", Uintx)) \
|
||||||
|
|
|
@ -716,6 +716,9 @@
|
||||||
develop(bool, AlwaysIncrementalInline, false, \
|
develop(bool, AlwaysIncrementalInline, false, \
|
||||||
"do all inlining incrementally") \
|
"do all inlining incrementally") \
|
||||||
\
|
\
|
||||||
|
product(bool, IncrementalInlineForceCleanup, false, DIAGNOSTIC, \
|
||||||
|
"do cleanup after every iteration of incremental inlining") \
|
||||||
|
\
|
||||||
product(intx, LiveNodeCountInliningCutoff, 40000, \
|
product(intx, LiveNodeCountInliningCutoff, 40000, \
|
||||||
"max number of live nodes in a method") \
|
"max number of live nodes in a method") \
|
||||||
range(0, max_juint / 8) \
|
range(0, max_juint / 8) \
|
||||||
|
|
|
@ -1880,7 +1880,9 @@ bool Compile::inline_incrementally_one() {
|
||||||
|
|
||||||
set_inlining_progress(false);
|
set_inlining_progress(false);
|
||||||
set_do_cleanup(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) {
|
void Compile::inline_incrementally_cleanup(PhaseIterGVN& igvn) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue