Commit 99ded7d2 authored by ishell@chromium.org's avatar ishell@chromium.org

--predictable mode added

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/93633008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 8683920e
...@@ -69,6 +69,9 @@ ...@@ -69,6 +69,9 @@
#define DEFINE_implication(whenflag, thenflag) \ #define DEFINE_implication(whenflag, thenflag) \
if (FLAG_##whenflag) FLAG_##thenflag = true; if (FLAG_##whenflag) FLAG_##thenflag = true;
#define DEFINE_neg_implication(whenflag, thenflag) \
if (FLAG_##whenflag) FLAG_##thenflag = false;
#else #else
#error No mode supplied when including flags.defs #error No mode supplied when including flags.defs
#endif #endif
...@@ -90,6 +93,10 @@ ...@@ -90,6 +93,10 @@
#define DEFINE_implication(whenflag, thenflag) #define DEFINE_implication(whenflag, thenflag)
#endif #endif
#ifndef DEFINE_neg_implication
#define DEFINE_neg_implication(whenflag, thenflag)
#endif
#define COMMA , #define COMMA ,
#ifdef FLAG_MODE_DECLARE #ifdef FLAG_MODE_DECLARE
...@@ -628,6 +635,14 @@ DEFINE_string(extra_code, NULL, "A filename with extra code to be included in" ...@@ -628,6 +635,14 @@ DEFINE_string(extra_code, NULL, "A filename with extra code to be included in"
DEFINE_bool(profile_hydrogen_code_stub_compilation, false, DEFINE_bool(profile_hydrogen_code_stub_compilation, false,
"Print the time it takes to lazily compile hydrogen code stubs.") "Print the time it takes to lazily compile hydrogen code stubs.")
DEFINE_bool(predictable, false, "enable predictable mode")
DEFINE_neg_implication(predictable, randomize_hashes)
DEFINE_neg_implication(predictable, concurrent_recompilation)
DEFINE_neg_implication(predictable, concurrent_osr)
DEFINE_neg_implication(predictable, concurrent_sweeping)
DEFINE_neg_implication(predictable, parallel_sweeping)
// //
// Dev shell flags // Dev shell flags
// //
...@@ -875,6 +890,7 @@ DEFINE_bool(enable_ool_constant_pool, false, ...@@ -875,6 +890,7 @@ DEFINE_bool(enable_ool_constant_pool, false,
#undef DEFINE_float #undef DEFINE_float
#undef DEFINE_args #undef DEFINE_args
#undef DEFINE_implication #undef DEFINE_implication
#undef DEFINE_neg_implication
#undef DEFINE_ALIAS_bool #undef DEFINE_ALIAS_bool
#undef DEFINE_ALIAS_int #undef DEFINE_ALIAS_int
#undef DEFINE_ALIAS_string #undef DEFINE_ALIAS_string
......
...@@ -162,6 +162,15 @@ void V8::FireCallCompletedCallback(Isolate* isolate) { ...@@ -162,6 +162,15 @@ void V8::FireCallCompletedCallback(Isolate* isolate) {
void V8::InitializeOncePerProcessImpl() { void V8::InitializeOncePerProcessImpl() {
FlagList::EnforceFlagImplications(); FlagList::EnforceFlagImplications();
if (FLAG_predictable) {
if (FLAG_random_seed == 0) {
// Avoid random seeds in predictable mode.
FLAG_random_seed = 12347;
}
FLAG_hash_seed = 0;
}
if (FLAG_stress_compaction) { if (FLAG_stress_compaction) {
FLAG_force_marking_deque_overflows = true; FLAG_force_marking_deque_overflows = true;
FLAG_gc_global = true; FLAG_gc_global = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment