diff options
author | Ali Ijaz Sheikh <ofrobots@google.com> | 2016-03-01 08:58:05 -0800 |
---|---|---|
committer | Ali Sheikh <ofrobots@lemonhope.roam.corp.google.com> | 2016-03-03 20:35:20 -0800 |
commit | 069e02ab47656b3efd1b6829c65856b2e1c2d1db (patch) | |
tree | eb643e0a2e88fd64bb9fc927423458d2ae96c2db /deps/v8/test/cctest/test-feedback-vector.cc | |
parent | 8938355398c79f583a468284b768652d12ba9bc9 (diff) | |
download | android-node-v8-069e02ab47656b3efd1b6829c65856b2e1c2d1db.tar.gz android-node-v8-069e02ab47656b3efd1b6829c65856b2e1c2d1db.tar.bz2 android-node-v8-069e02ab47656b3efd1b6829c65856b2e1c2d1db.zip |
deps: upgrade to V8 4.9.385.18
Pick up the current branch head for V8 4.9
https://github.com/v8/v8/commit/1ecba0f
PR-URL: https://github.com/nodejs/node/pull/4722
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaƫl Zasso <mic.besace@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/test-feedback-vector.cc')
-rw-r--r-- | deps/v8/test/cctest/test-feedback-vector.cc | 139 |
1 files changed, 23 insertions, 116 deletions
diff --git a/deps/v8/test/cctest/test-feedback-vector.cc b/deps/v8/test/cctest/test-feedback-vector.cc index 26a7191d9e..c06e5b9124 100644 --- a/deps/v8/test/cctest/test-feedback-vector.cc +++ b/deps/v8/test/cctest/test-feedback-vector.cc @@ -2,9 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// TODO(mvstanton): Remove this define after this flag is turned on globally -#define V8_IMMINENT_DEPRECATION_WARNINGS - #include "src/v8.h" #include "test/cctest/cctest.h" @@ -47,8 +44,6 @@ TEST(VectorStructure) { CHECK(Handle<FixedArray>::cast(vector) .is_identical_to(factory->empty_fixed_array())); // Which can nonetheless be queried. - CHECK_EQ(0, vector->ic_with_type_info_count()); - CHECK_EQ(0, vector->ic_generic_count()); CHECK(vector->is_empty()); { @@ -135,8 +130,6 @@ TEST(VectorICMetadata) { // Meanwhile set some feedback values and type feedback values to // verify the data structure remains intact. - vector->change_ic_with_type_info_count(100); - vector->change_ic_generic_count(3333); vector->Set(FeedbackVectorSlot(0), *vector); // Verify the metadata is correctly set up from the spec. @@ -200,60 +193,6 @@ TEST(VectorSlotClearing) { } -TEST(VectorICProfilerStatistics) { - if (i::FLAG_always_opt) return; - CcTest::InitializeVM(); - LocalContext context; - v8::HandleScope scope(context->GetIsolate()); - Isolate* isolate = CcTest::i_isolate(); - Heap* heap = isolate->heap(); - - // Make sure function f has a call that uses a type feedback slot. - CompileRun( - "function fun() {};" - "function f(a) { a(); } f(fun);"); - Handle<JSFunction> f = GetFunction("f"); - // There should be one IC. - Handle<Code> code = handle(f->shared()->code(), isolate); - TypeFeedbackInfo* feedback_info = - TypeFeedbackInfo::cast(code->type_feedback_info()); - CHECK_EQ(1, feedback_info->ic_total_count()); - CHECK_EQ(0, feedback_info->ic_with_type_info_count()); - CHECK_EQ(0, feedback_info->ic_generic_count()); - Handle<TypeFeedbackVector> feedback_vector = - handle(f->shared()->feedback_vector(), isolate); - FeedbackVectorHelper helper(feedback_vector); - CallICNexus nexus(feedback_vector, helper.slot(0)); - CHECK_EQ(1, feedback_vector->ic_with_type_info_count()); - CHECK_EQ(0, feedback_vector->ic_generic_count()); - - // Now send the information generic. - CompileRun("f(Object);"); - CHECK_EQ(0, feedback_vector->ic_with_type_info_count()); - CHECK_EQ(1, feedback_vector->ic_generic_count()); - - // A collection will not affect the site. - heap->CollectAllGarbage(); - CHECK_EQ(0, feedback_vector->ic_with_type_info_count()); - CHECK_EQ(1, feedback_vector->ic_generic_count()); - - // The Array function is special. A call to array remains monomorphic - // and isn't cleared by gc because an AllocationSite is being held. - // Clear the IC manually in order to test this case. - nexus.Clear(*code); - CompileRun("f(Array);"); - CHECK_EQ(1, feedback_vector->ic_with_type_info_count()); - CHECK_EQ(0, feedback_vector->ic_generic_count()); - - - CHECK(nexus.GetFeedback()->IsAllocationSite()); - heap->CollectAllGarbage(); - CHECK_EQ(1, feedback_vector->ic_with_type_info_count()); - CHECK_EQ(0, feedback_vector->ic_generic_count()); - CHECK(nexus.GetFeedback()->IsAllocationSite()); -} - - TEST(VectorCallICStates) { if (i::FLAG_always_opt) return; CcTest::InitializeVM(); @@ -460,17 +399,11 @@ TEST(ReferenceContextAllocatesNoSlots) { Handle<TypeFeedbackVector> feedback_vector = handle(f->shared()->feedback_vector(), isolate); FeedbackVectorHelper helper(feedback_vector); - if (FLAG_vector_stores) { - CHECK_EQ(4, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::STORE_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC); - CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::LOAD_IC); - } else { - CHECK_EQ(2, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); - } + CHECK_EQ(4, helper.slot_count()); + CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::STORE_IC); + CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); + CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC); + CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::LOAD_IC); } { @@ -485,11 +418,7 @@ TEST(ReferenceContextAllocatesNoSlots) { // There should be one LOAD_IC, for the load of a. Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector()); FeedbackVectorHelper helper(feedback_vector); - if (FLAG_vector_stores) { - CHECK_EQ(2, helper.slot_count()); - } else { - CHECK_EQ(1, helper.slot_count()); - } + CHECK_EQ(2, helper.slot_count()); } { @@ -506,20 +435,12 @@ TEST(ReferenceContextAllocatesNoSlots) { // There should be 2 LOAD_ICs and 2 CALL_ICs. Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector()); FeedbackVectorHelper helper(feedback_vector); - if (FLAG_vector_stores) { - CHECK_EQ(5, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::CALL_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC); - CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::CALL_IC); - CHECK_SLOT_KIND(helper, 4, FeedbackVectorSlotKind::LOAD_IC); - } else { - CHECK_EQ(4, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::CALL_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::CALL_IC); - CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::LOAD_IC); - } + CHECK_EQ(5, helper.slot_count()); + CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::CALL_IC); + CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); + CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC); + CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::CALL_IC); + CHECK_SLOT_KIND(helper, 4, FeedbackVectorSlotKind::LOAD_IC); } { @@ -536,16 +457,10 @@ TEST(ReferenceContextAllocatesNoSlots) { // the load of x[0] in the return statement. Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector()); FeedbackVectorHelper helper(feedback_vector); - if (FLAG_vector_stores) { - CHECK_EQ(3, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::KEYED_STORE_IC); - CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::KEYED_LOAD_IC); - } else { - CHECK_EQ(2, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::KEYED_LOAD_IC); - } + CHECK_EQ(3, helper.slot_count()); + CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); + CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::KEYED_STORE_IC); + CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::KEYED_LOAD_IC); } { @@ -561,27 +476,19 @@ TEST(ReferenceContextAllocatesNoSlots) { // There should be 3 LOAD_ICs, for load of a and load of x.old and x.young. Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector()); FeedbackVectorHelper helper(feedback_vector); - if (FLAG_vector_stores) { - CHECK_EQ(6, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::STORE_IC); - CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC); - CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::STORE_IC); - CHECK_SLOT_KIND(helper, 4, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 5, FeedbackVectorSlotKind::LOAD_IC); - } else { - CHECK_EQ(3, helper.slot_count()); - CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC); - CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::LOAD_IC); - } + CHECK_EQ(6, helper.slot_count()); + CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC); + CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::STORE_IC); + CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC); + CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::STORE_IC); + CHECK_SLOT_KIND(helper, 4, FeedbackVectorSlotKind::LOAD_IC); + CHECK_SLOT_KIND(helper, 5, FeedbackVectorSlotKind::LOAD_IC); } } TEST(VectorStoreICBasic) { if (i::FLAG_always_opt) return; - if (!i::FLAG_vector_stores) return; CcTest::InitializeVM(); LocalContext context; |