Bug 650161 - Add --enable-gccompacting configure flag for compacting GC r=terrence r=ted
authorJon Coppeard <jcoppeard@mozilla.com>
Thu, 14 Aug 2014 11:46:26 +0100
changeset 221318 8f3ba188627a802a000d3824f15a395c8088f453
parent 221317 a24871f33bf90dfb7a4c88a4c7996bb1a799bca0
child 221319 ef2b28e788e1e4efa70ba0c6578a143ffe9a3cfe
push id3979
push userraliiev@mozilla.com
push dateMon, 13 Oct 2014 16:35:44 +0000
treeherdermozilla-beta@30f2cc610691 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersterrence, ted
bugs650161
milestone34.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 650161 - Add --enable-gccompacting configure flag for compacting GC r=terrence r=ted
configure.in
js/src/configure.in
--- a/configure.in
+++ b/configure.in
@@ -7150,16 +7150,27 @@ MOZ_ARG_DISABLE_BOOL(gcgenerational,
 [  --disable-gcgenerational Disable generational GC],
     JSGC_GENERATIONAL= ,
     JSGC_GENERATIONAL=1 )
 if test -n "$JSGC_GENERATIONAL"; then
     AC_DEFINE(JSGC_GENERATIONAL)
 fi
 
 dnl ========================================================
+dnl = Use compacting GC
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(gccompacting,
+[  --enable-gccompacting   Compact the JS heap by moving GC things],
+    JS_GCCOMPACTING=1,
+    JS_GCCOMPACTING= )
+if test -n "$JS_GCCOMPACTING"; then
+    AC_DEFINE(JS_GCCOMPACTING)
+fi
+
+dnl ========================================================
 dnl = Use a smaller chunk size for GC chunks
 dnl ========================================================
 MOZ_ARG_ENABLE_BOOL(small-chunk-size,
 [  --enable-small-chunk-size  Allocate memory for JS GC things in smaller chunks],
     JS_GC_SMALL_CHUNK_SIZE=1,
     JS_GC_SMALL_CHUNK_SIZE= )
 if test -n "$JS_GC_SMALL_CHUNK_SIZE"; then
     AC_DEFINE(JS_GC_SMALL_CHUNK_SIZE)
@@ -9110,16 +9121,19 @@ if test -z "$JS_SHARED_LIBRARY" ; then
     fi
 fi
 if test -z "$JSGC_USE_EXACT_ROOTING" ; then
     ac_configure_args="$ac_configure_args --disable-exact-rooting"
 fi
 if test -z "$JSGC_GENERATIONAL" ; then
     ac_configure_args="$ac_configure_args --disable-gcgenerational"
 fi
+if test -n "$JS_GCCOMPACTING" ; then
+    ac_configure_args="$ac_configure_args --enable-gccompacting"
+fi
 if test -n "$JS_GC_SMALL_CHUNK_SIZE" ; then
     ac_configure_args="$ac_configure_args --enable-small-chunk-size"
 fi
 if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
     ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
     ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
 fi
 ac_configure_args="$ac_configure_args --prefix=$dist"
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -3116,16 +3116,28 @@ MOZ_ARG_DISABLE_BOOL(exact-rooting,
 [  --disable-exact-rooting  Enable use of conservative stack scanning for GC],
     JSGC_USE_EXACT_ROOTING= ,
     JSGC_USE_EXACT_ROOTING=1 )
 if test -n "$JSGC_USE_EXACT_ROOTING"; then
     AC_DEFINE(JSGC_USE_EXACT_ROOTING)
 fi
 
 dnl ========================================================
+dnl = Use compacting GC
+dnl ========================================================
+dnl Compact the heap by moving GC things when doing a shrinking colletion.
+MOZ_ARG_ENABLE_BOOL(gccompacting,
+[  --enable-gccompacting   Compact the heap by moving GC things],
+    JSGC_COMPACTING=1,
+    JSGC_COMPACTING= )
+if test -n "$JSGC_COMPACTING"; then
+    AC_DEFINE(JSGC_COMPACTING)
+fi
+
+dnl ========================================================
 dnl = Use a smaller chunk size for GC chunks
 dnl ========================================================
 dnl Use large (1MB) chunks by default.  For B2G this option is used to give
 dnl smaller (currently 256K) chunks.
 MOZ_ARG_ENABLE_BOOL(small-chunk-size,
 [  --enable-small-chunk-size  Allocate memory for JS GC things in smaller chunks],
     JS_GC_SMALL_CHUNK_SIZE=1,
     JS_GC_SMALL_CHUNK_SIZE= )