Commit 5d16e866 authored by Michael Starzinger's avatar Michael Starzinger Committed by Commit Bot

Revert "[flags] Remove some dead Crankshaft flags."

This reverts commit ec6da23b.

Reason for revert: Requires infrastructure changes first. Will reland after changes have happened.

Original change's description:
> [flags] Remove some dead Crankshaft flags.
> 
> R=​bmeurer@chromium.org
> BUG=v8:6408
> 
> Change-Id: I34abbcdc2fc47df44938bac0e59f9982c935c657
> Reviewed-on: https://chromium-review.googlesource.com/569963
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#46631}

TBR=mstarzinger@chromium.org,bmeurer@chromium.org

Change-Id: Iee077911ae7d877c6a9d2edb548e3c04345b47ce
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6408
Reviewed-on: https://chromium-review.googlesource.com/570049Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46632}
parent ec6da23b
......@@ -337,6 +337,11 @@ DEFINE_STRING(trace_ignition_dispatches_output_file, nullptr,
// Flags for Crankshaft.
DEFINE_STRING(hydrogen_filter, "*", "optimization filter")
DEFINE_BOOL(use_gvn, true, "use hydrogen global value numbering")
DEFINE_INT(gvn_iterations, 3, "maximum number of GVN fix-point iterations")
DEFINE_BOOL(use_canonicalizing, true, "use hydrogen instruction canonicalizing")
DEFINE_BOOL(use_inlining, true, "use function inlining")
DEFINE_BOOL(use_escape_analysis, true, "use hydrogen escape analysis")
DEFINE_BOOL(use_allocation_folding, true, "use allocation folding")
DEFINE_BOOL(use_local_allocation_folding, false, "only fold in basic blocks")
DEFINE_BOOL(use_write_barrier_elimination, true,
......@@ -354,7 +359,10 @@ DEFINE_INT(max_inlined_nodes_cumulative, 400,
DEFINE_INT(max_inlined_nodes_small, 10,
"maximum number of AST nodes considered for small function inlining")
DEFINE_FLOAT(min_inlining_frequency, 0.15, "minimum frequency for inlining")
DEFINE_BOOL(loop_invariant_code_motion, true, "loop invariant code motion")
DEFINE_BOOL(fast_math, true, "faster (but maybe less accurate) math functions")
DEFINE_BOOL(hydrogen_stats, false, "print statistics for hydrogen")
DEFINE_BOOL(trace_check_elimination, false, "trace check elimination phase")
DEFINE_BOOL(trace_environment_liveness, false,
"trace liveness of local variable slots")
DEFINE_BOOL(trace_hydrogen, false, "trace generated hydrogen to file")
......@@ -362,34 +370,60 @@ DEFINE_STRING(trace_hydrogen_filter, "*", "hydrogen tracing filter")
DEFINE_BOOL(trace_hydrogen_stubs, false, "trace generated hydrogen for stubs")
DEFINE_STRING(trace_hydrogen_file, NULL, "trace hydrogen to given file name")
DEFINE_STRING(trace_phase, "HLZ", "trace generated IR for specified phases")
DEFINE_BOOL(trace_inlining, false, "trace inlining decisions")
DEFINE_BOOL(trace_load_elimination, false, "trace load elimination")
DEFINE_BOOL(trace_store_elimination, false, "trace store elimination")
DEFINE_BOOL(turbo_verify_store_elimination, false,
"verify store elimination more rigorously")
DEFINE_BOOL(trace_alloc, false, "trace register allocator")
DEFINE_BOOL(trace_all_uses, false, "trace all use positions")
DEFINE_BOOL(trace_range, false, "trace range analysis")
DEFINE_BOOL(trace_gvn, false, "trace global value numbering")
DEFINE_BOOL(trace_representation, false, "trace representation types")
DEFINE_BOOL(trace_removable_simulates, false, "trace removable simulates")
DEFINE_BOOL(trace_escape_analysis, false, "trace hydrogen escape analysis")
DEFINE_BOOL(trace_allocation_folding, false, "trace allocation folding")
DEFINE_BOOL(trace_track_allocation_sites, false,
"trace the tracking of allocation sites")
DEFINE_BOOL(trace_migration, false, "trace object migration")
DEFINE_BOOL(trace_generalization, false, "trace map generalization")
DEFINE_BOOL(stress_pointer_maps, false, "pointer map for every instruction")
DEFINE_BOOL(stress_environments, false, "environment for every instruction")
DEFINE_INT(deopt_every_n_times, 0,
"deoptimize every n times a deopt point is passed")
DEFINE_BOOL(print_deopt_stress, false, "print number of possible deopt points")
DEFINE_BOOL(trap_on_deopt, false, "put a break point before deoptimizing")
DEFINE_BOOL(trap_on_stub_deopt, false,
"put a break point before deoptimizing a stub")
DEFINE_BOOL(deoptimize_uncommon_cases, true, "deoptimize uncommon cases")
DEFINE_BOOL(polymorphic_inlining, true, "polymorphic inlining")
DEFINE_BOOL(use_osr, true, "use on-stack replacement")
DEFINE_BOOL(array_bounds_checks_elimination, true,
"perform array bounds checks elimination")
DEFINE_BOOL(trace_bce, false, "trace array bounds check elimination")
DEFINE_BOOL(array_index_dehoisting, true, "perform array index dehoisting")
DEFINE_BOOL(analyze_environment_liveness, true,
"analyze liveness of environment slots and zap dead values")
DEFINE_BOOL(load_elimination, true, "use load elimination")
DEFINE_BOOL(check_elimination, true, "use check elimination")
DEFINE_BOOL(store_elimination, false, "use store elimination")
DEFINE_BOOL(dead_code_elimination, true, "use dead code elimination")
DEFINE_BOOL(fold_constants, true, "use constant folding")
DEFINE_BOOL(trace_dead_code_elimination, false, "trace dead code elimination")
DEFINE_BOOL(unreachable_code_elimination, true, "eliminate unreachable code")
DEFINE_BOOL(trace_osr, false, "trace on-stack replacement")
DEFINE_INT(stress_runs, 0, "number of stress runs")
DEFINE_BOOL(lookup_sample_by_shared, true,
"when picking a function to optimize, watch for shared function "
"info, not JSFunction itself")
DEFINE_BOOL(flush_optimized_code_cache, false,
"flushes the cache of optimized code for closures on every GC")
DEFINE_BOOL(inline_construct, true, "inline constructor calls")
DEFINE_BOOL(inline_arguments, true, "inline functions with arguments object")
DEFINE_BOOL(inline_accessors, true, "inline JavaScript accessors")
DEFINE_BOOL(inline_into_try, true, "inline into try blocks")
DEFINE_INT(escape_analysis_iterations, 1,
"maximum number of escape analysis fix-point iterations")
DEFINE_BOOL(concurrent_recompilation, true,
"optimizing hot functions asynchronously on a separate thread")
......@@ -993,6 +1027,10 @@ DEFINE_STRING(startup_src, NULL,
DEFINE_STRING(startup_blob, NULL,
"Write V8 startup blob file. (mksnapshot only)")
// code-stubs-hydrogen.cc
DEFINE_BOOL(profile_hydrogen_code_stub_compilation, false,
"Print the time it takes to lazily compile hydrogen code stubs.")
//
// Dev shell flags
//
......
......@@ -14451,6 +14451,7 @@ TEST(SetFunctionEntryHook) {
// only gets called from experimental natives) is compiled with entry hooks.
i::FLAG_allow_natives_syntax = true;
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
SetFunctionEntryHookTest test;
test.RunTest();
......
......@@ -51,50 +51,59 @@ using ::v8::internal::Object;
// Utility class to set the following runtime flags when constructed and return
// to their default state when destroyed:
// --allow-natives-syntax --always-opt --noturbo-inlining
// --allow-natives-syntax --always-opt --noturbo-inlining --nouse-inlining
class AlwaysOptimizeAllowNativesSyntaxNoInlining {
public:
AlwaysOptimizeAllowNativesSyntaxNoInlining()
: always_opt_(i::FLAG_always_opt),
allow_natives_syntax_(i::FLAG_allow_natives_syntax),
turbo_inlining_(i::FLAG_turbo_inlining) {
turbo_inlining_(i::FLAG_turbo_inlining),
use_inlining_(i::FLAG_use_inlining) {
i::FLAG_always_opt = true;
i::FLAG_allow_natives_syntax = true;
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
}
~AlwaysOptimizeAllowNativesSyntaxNoInlining() {
i::FLAG_always_opt = always_opt_;
i::FLAG_allow_natives_syntax = allow_natives_syntax_;
i::FLAG_turbo_inlining = turbo_inlining_;
i::FLAG_use_inlining = use_inlining_;
}
private:
bool always_opt_;
bool allow_natives_syntax_;
bool turbo_inlining_;
bool use_inlining_;
};
// Utility class to set the following runtime flags when constructed and return
// to their default state when destroyed:
// --allow-natives-syntax --noturbo-inlining
// --allow-natives-syntax --noturbo-inlining --nouse-inlining
class AllowNativesSyntaxNoInlining {
public:
AllowNativesSyntaxNoInlining()
: allow_natives_syntax_(i::FLAG_allow_natives_syntax),
turbo_inlining_(i::FLAG_turbo_inlining) {
turbo_inlining_(i::FLAG_turbo_inlining),
use_inlining_(i::FLAG_use_inlining) {
i::FLAG_allow_natives_syntax = true;
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
}
~AllowNativesSyntaxNoInlining() {
i::FLAG_allow_natives_syntax = allow_natives_syntax_;
i::FLAG_turbo_inlining = turbo_inlining_;
i::FLAG_use_inlining = use_inlining_;
}
private:
bool allow_natives_syntax_;
bool turbo_inlining_;
bool use_inlining_;
};
......
......@@ -128,6 +128,7 @@ bool IsObjectShrinkable(JSObject* obj) {
TEST(JSObjectBasic) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -186,6 +187,7 @@ TEST(JSObjectBasicNoInlineNew) {
TEST(JSObjectComplex) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -266,6 +268,7 @@ TEST(JSObjectComplexNoInlineNew) {
TEST(JSGeneratorObjectBasic) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -332,6 +335,7 @@ TEST(JSGeneratorObjectBasicNoInlineNew) {
TEST(SubclassBasicNoBaseClassInstances) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -424,6 +428,7 @@ TEST(SubclassBasicNoBaseClassInstancesNoInlineNew) {
TEST(SubclassBasic) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -622,6 +627,7 @@ static void TestClassHierarchy(const std::vector<int>& hierarchy_desc, int n) {
static void TestSubclassChain(const std::vector<int>& hierarchy_desc) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -662,6 +668,7 @@ TEST(LongSubclassChain3) {
TEST(InobjectPropetiesCountOverflowInSubclass) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -846,6 +853,7 @@ TEST(ObjectLiteralPropertyBackingStoreSize) {
TEST(SlowModeSubclass) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -983,6 +991,7 @@ static void TestSubclassBuiltin(const char* subclass_name,
TEST(SubclassObjectBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1001,6 +1010,7 @@ TEST(SubclassObjectBuiltinNoInlineNew) {
TEST(SubclassFunctionBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1018,6 +1028,7 @@ TEST(SubclassFunctionBuiltinNoInlineNew) {
TEST(SubclassBooleanBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1035,6 +1046,7 @@ TEST(SubclassBooleanBuiltinNoInlineNew) {
TEST(SubclassErrorBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1059,6 +1071,7 @@ TEST(SubclassErrorBuiltinNoInlineNew) {
TEST(SubclassNumberBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1076,6 +1089,7 @@ TEST(SubclassNumberBuiltinNoInlineNew) {
TEST(SubclassDateBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1092,6 +1106,7 @@ TEST(SubclassDateBuiltinNoInlineNew) {
TEST(SubclassStringBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1109,6 +1124,7 @@ TEST(SubclassStringBuiltinNoInlineNew) {
TEST(SubclassRegExpBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1127,6 +1143,7 @@ TEST(SubclassRegExpBuiltinNoInlineNew) {
TEST(SubclassArrayBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1143,6 +1160,7 @@ TEST(SubclassArrayBuiltinNoInlineNew) {
TEST(SubclassTypedArrayBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1164,6 +1182,7 @@ TEST(SubclassTypedArrayBuiltinNoInlineNew) {
TEST(SubclassCollectionBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1183,6 +1202,7 @@ TEST(SubclassCollectionBuiltinNoInlineNew) {
TEST(SubclassArrayBufferBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......@@ -1201,6 +1221,7 @@ TEST(SubclassArrayBufferBuiltinNoInlineNew) {
TEST(SubclassPromiseBuiltin) {
// Avoid eventual completion of in-object slack tracking.
FLAG_inline_construct = false;
FLAG_always_opt = false;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
......
......@@ -150,6 +150,7 @@ static void CreateTraceCallerFunction(v8::Local<v8::Context> context,
TEST(CFromJSStackTrace) {
// BUG(1303) Inlining of JSFuncDoTrace() in JSTrace below breaks this test.
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
TickSample sample;
i::TraceExtension::InitTraceEnv(&sample);
......@@ -199,6 +200,7 @@ TEST(PureJSStackTrace) {
// This test does not pass with inlining enabled since inlined functions
// don't appear in the stack trace.
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
TickSample sample;
i::TraceExtension::InitTraceEnv(&sample);
......
......@@ -518,6 +518,7 @@ TEST(RecordStackTraceAtStartProfiling) {
// This test does not pass with inlining enabled since inlined functions
// don't appear in the stack trace.
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
v8::HandleScope scope(CcTest::isolate());
v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
......@@ -596,6 +597,7 @@ TEST(ProfileNodeScriptId) {
// This test does not pass with inlining enabled since inlined functions
// don't appear in the stack trace.
i::FLAG_turbo_inlining = false;
i::FLAG_use_inlining = false;
v8::HandleScope scope(CcTest::isolate());
v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
......@@ -665,6 +667,8 @@ int GetFunctionLineNumber(CpuProfiler& profiler, LocalContext& env,
}
TEST(LineNumber) {
i::FLAG_use_inlining = false;
CcTest::InitializeVM();
LocalContext env;
i::Isolate* isolate = CcTest::i_isolate();
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --deopt-every-n-times=5
// Flags: --allow-natives-syntax --deopt-every-n-times=5 --nodead-code-elimination
var array = [];
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --array-bounds-checks-elimination
var a = []
for (var i = 0; i < 9; i++) a[i] = i + 1;
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --inline-construct
// Flags: --max-inlined-source-size=999999 --max-inlined-nodes=999999
// Flags: --max-inlined-nodes-cumulative=999999
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --inline-construct
// Test that inlined object allocation works for different layouts of
// objects (e.g. in object properties, slack tracking in progress or
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --no-use-inlining
// -----------------------------------------------------------------------------
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax --expose-gc
// Flags: --allow-natives-syntax --use-escape-analysis --expose-gc
// Simple test of capture
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --use-escape-analysis
// This tests that captured objects materialized through the deoptimizer
// have field descriptors with a representation matching the values that
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax --expose-gc
// Flags: --allow-natives-syntax --use-escape-analysis --expose-gc
// Test stores on a join path.
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --inline-construct
// Test inlining of constructor calls.
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --no-fold-constants
function add(x, y) {
return x + y;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
function foo(x) { Math.fround(x); }
foo(1);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
function foo(x) { Math.sqrt(x); }
foo(1);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
function foo(x) { Math.floor(x); }
foo(1);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
function foo(x) { Math.round(x); }
foo(1);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
function foo(x) { Math.abs(x); }
foo(1);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
function foo(x) { Math.log(x); }
foo(1);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --fold-constants
function test() {
assertEquals("string", typeof "");
......
......@@ -26,6 +26,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --nodead-code-elimination --fold-constants
// Flags: --allow-natives-syntax --nostress-opt --opt
function test(f) {
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax --opt
// Flags: --allow-natives-syntax --nouse-inlining --opt
// Test for negative zero that doesn't need bail out
......
......@@ -25,7 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax --noenable-sudiv --noenable-armv8
// Flags: --allow-natives-syntax --nouse-inlining --noenable-sudiv
// Flags: --noenable-armv8
// Use this function as reference. Make sure it is not inlined.
function div(a, b) {
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax --enable-sudiv
// Flags: --allow-natives-syntax --nouse-inlining --enable-sudiv
// Use this function as reference. Make sure it is not inlined.
function div(a, b) {
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --concurrent-recompilation
// Flags: --nodead-code-elimination --concurrent-recompilation
// Flags: --allow-natives-syntax --no-always-opt
if (!%IsConcurrentRecompilationSupported()) {
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --nouse-inlining
// Test that we do not crash we invoke builtins from optimized code that
// is then deoptimized.
......
......@@ -25,7 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --nodead-code-elimination
// Flags: --nofold-constants --nouse-gvn
// Create a function to get a long series of removable simulates.
// f() {
......
......@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --dead-code-elimination
// This tests that stores on captured objects are correctly tracked even
// when DCE is enabled. We cannot delete simulations of captured objects
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --fold-constants --allow-natives-syntax
function bar(obj) {
assertTrue(obj.x === 'baz');
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --debug-code
// Flags: --allow-natives-syntax --debug-code --fold-constants
function f(a) {
a[5000000] = 256;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --fold-constants
function store(a) {
a[5000000] = 1;
......
......@@ -3,6 +3,7 @@
// found in the LICENSE file.
// Flags: --allow-natives-syntax --deopt-every-n-times=55
// Flags: --nodead-code-elimination
function f(t) {
var result = [];
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --no-fold-constants
function foo(x, y) {
return Math.floor(x / y);
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --expose-gc
// Flags: --allow-natives-syntax --dead-code-elimination --expose-gc
var training = {};
training.a = "nop";
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --debug-code
// Flags: --allow-natives-syntax --debug-code --use-gvn
function f(a, base) {
a[base] = 1;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --fold-constants
var result = 0;
var o1 = {};
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --enable-slow-asserts --debug-code
// Flags: --nofold-constants --enable-slow-asserts --debug-code
function foo(p) {
for (var i = 0; i < 100000; ++i) {
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --debug-code
// Flags: --debug-code --nouse-gvn
"use strict";
class Base {
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax
// Flags: --allow-natives-syntax --fold-constants
var zero = 0;
......
......@@ -25,6 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --fold-constants --nodead-code-elimination
// Flags: --expose-gc --allow-natives-syntax
// Flags: --concurrent-recompilation --block-concurrent-recompilation
// Flags: --opt --no-always-opt
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --track-field-types
// Flags: --allow-natives-syntax --track-field-types --use-gvn
function A(id) {
this.id = id;
......
......@@ -58,9 +58,11 @@ TIMEOUT_SCALEFACTOR = {"debug" : 4,
"release" : 1 }
MODE_FLAGS = {
"debug" : ["--nohard-abort", "--enable-slow-asserts",
"debug" : ["--nohard-abort", "--nodead-code-elimination",
"--nofold-constants", "--enable-slow-asserts",
"--verify-heap", "--noconcurrent-recompilation"],
"release" : ["--nohard-abort", "--noconcurrent-recompilation"]}
"release" : ["--nohard-abort", "--nodead-code-elimination",
"--nofold-constants", "--noconcurrent-recompilation"]}
SUPPORTED_ARCHS = ["android_arm",
"android_ia32",
......
......@@ -131,8 +131,11 @@ VARIANT_ALIASES = {
"extra": [],
}
DEBUG_FLAGS = ["--nohard-abort", "--enable-slow-asserts", "--verify-heap"]
RELEASE_FLAGS = ["--nohard-abort"]
DEBUG_FLAGS = ["--nohard-abort", "--nodead-code-elimination",
"--nofold-constants", "--enable-slow-asserts",
"--verify-heap"]
RELEASE_FLAGS = ["--nohard-abort", "--nodead-code-elimination",
"--nofold-constants"]
MODES = {
"debug": {
......
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