summaryrefslogtreecommitdiff
path: root/rts/RtsFlags.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/RtsFlags.c')
-rw-r--r--rts/RtsFlags.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
index 95656c3da6..4324366696 100644
--- a/rts/RtsFlags.c
+++ b/rts/RtsFlags.c
@@ -164,7 +164,8 @@ void initRtsFlagsDefaults(void)
RtsFlags.GcFlags.heapSizeSuggestionAuto = false;
RtsFlags.GcFlags.pcFreeHeap = 3; /* 3% */
RtsFlags.GcFlags.oldGenFactor = 2;
- RtsFlags.GcFlags.useNonmoving = false;
+ RtsFlags.GcFlags.useNonmovingPinned = false;
+ RtsFlags.GcFlags.concurrentNonmoving = false;
RtsFlags.GcFlags.nonmovingSelectorOpt = false;
RtsFlags.GcFlags.generations = 2;
RtsFlags.GcFlags.squeezeUpdFrames = true;
@@ -981,12 +982,17 @@ error = true;
else if (strequal("copying-gc",
&rts_argv[arg][2])) {
OPTION_SAFE;
- RtsFlags.GcFlags.useNonmoving = false;
+ RtsFlags.GcFlags.concurrentNonmoving = false;
}
else if (strequal("nonmoving-gc",
&rts_argv[arg][2])) {
OPTION_SAFE;
- RtsFlags.GcFlags.useNonmoving = true;
+ RtsFlags.GcFlags.concurrentNonmoving = true;
+ }
+ else if (strequal("nonmoving-pinned",
+ &rts_argv[arg][2])) {
+ OPTION_SAFE;
+ RtsFlags.GcFlags.useNonmovingPinned = true;
}
#if defined(THREADED_RTS)
#if defined(mingw32_HOST_OS)
@@ -1664,7 +1670,7 @@ error = true;
case 'n':
OPTION_SAFE;
- RtsFlags.GcFlags.useNonmoving = true;
+ RtsFlags.GcFlags.concurrentNonmoving = true;
unchecked_arg_start++;
if (rts_argv[arg][3] == 's') {
RtsFlags.GcFlags.nonmovingSelectorOpt = true;
@@ -1846,7 +1852,7 @@ static void normaliseRtsOpts (void)
RtsFlags.MiscFlags.install_seh_handlers = true;
}
- if (RtsFlags.GcFlags.useNonmoving && RtsFlags.GcFlags.generations == 1) {
+ if (RtsFlags.GcFlags.concurrentNonmoving && RtsFlags.GcFlags.generations == 1) {
barf("The non-moving collector doesn't support -G1");
}
@@ -1861,11 +1867,11 @@ static void normaliseRtsOpts (void)
#endif
if (RtsFlags.ProfFlags.doHeapProfile != NO_HEAP_PROFILING &&
- RtsFlags.GcFlags.useNonmoving) {
+ RtsFlags.GcFlags.concurrentNonmoving) {
barf("The non-moving collector doesn't support profiling");
}
- if (RtsFlags.GcFlags.compact && RtsFlags.GcFlags.useNonmoving) {
+ if (RtsFlags.GcFlags.compact && RtsFlags.GcFlags.concurrentNonmoving) {
errorBelch("The non-moving collector cannot be used in conjunction with\n"
"the compacting collector.");
errorUsage();