RFR(L): 8186027: C2: loop strip mining
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Nov 28 17:16:20 UTC 2017
UseCountedLoopSafepoints should be false by default too. Otherwise code in arguments.cpp will set LoopStripMiningIter to
1. I will remove next change in c2_globals.hpp:
- product(bool, UseCountedLoopSafepoints, false, \
+ product(bool, UseCountedLoopSafepoints, true, \
Thanks,
Vladimir
On 11/28/17 3:00 AM, Roland Westrelin wrote:
>
> Hi Vladimir,
>
>> Roland, please, prepare changeset.
>
> Here is the changeset:
>
> http://cr.openjdk.java.net/~roland/8186027/loop-strip-mining.patch
>
> It includes the patch below to enable it with G1.
>
> Roland.
>
> diff --git a/src/hotspot/share/gc/g1/g1Arguments.cpp b/src/hotspot/share/gc/g1/g1Arguments.cpp
> --- a/src/hotspot/share/gc/g1/g1Arguments.cpp
> +++ b/src/hotspot/share/gc/g1/g1Arguments.cpp
> @@ -92,6 +92,16 @@
> }
>
> log_trace(gc)("MarkStackSize: %uk MarkStackSizeMax: %uk", (unsigned int) (MarkStackSize / K), (uint) (MarkStackSizeMax / K));
> +
> +#ifdef COMPILER2
> + // Enable loop strip mining to offer better pause time guarantees
> + if (FLAG_IS_DEFAULT(UseCountedLoopSafepoints)) {
> + FLAG_SET_DEFAULT(UseCountedLoopSafepoints, true);
> + }
> + if (UseCountedLoopSafepoints && FLAG_IS_DEFAULT(LoopStripMiningIter)) {
> + FLAG_SET_DEFAULT(LoopStripMiningIter, 1000);
> + }
> +#endif
> }
>
> CollectedHeap* G1Arguments::create_heap() {
> diff --git a/src/hotspot/share/opto/c2_globals.hpp b/src/hotspot/share/opto/c2_globals.hpp
> --- a/src/hotspot/share/opto/c2_globals.hpp
> +++ b/src/hotspot/share/opto/c2_globals.hpp
> @@ -741,7 +741,7 @@
> develop(bool, RenumberLiveNodes, true, \
> "Renumber live nodes") \
> \
> - product(uintx, LoopStripMiningIter, 1000, \
> + product(uintx, LoopStripMiningIter, 0, \
> "Number of iterations in strip mined loop") \
> range(0, max_juint) \
> \
>
More information about the hotspot-gc-dev
mailing list