| Index: test/cctest/test-feedback-vector.cc
|
| diff --git a/test/cctest/test-feedback-vector.cc b/test/cctest/test-feedback-vector.cc
|
| index 3f2c1100f74c958cb66c625ace311f5579a794bc..1df963b97a3870cd6680e63636779cd87327d43f 100644
|
| --- a/test/cctest/test-feedback-vector.cc
|
| +++ b/test/cctest/test-feedback-vector.cc
|
| @@ -386,11 +386,12 @@ TEST(VectorLoadGlobalICSlotSharing) {
|
| Handle<FeedbackVector> feedback_vector =
|
| Handle<FeedbackVector>(f->feedback_vector(), isolate);
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(2, helper.slot_count());
|
| + CHECK_EQ(4, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| - CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kLoadGlobalInsideTypeof);
|
| + CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kLoadGlobalInsideTypeof);
|
| FeedbackSlot slot1 = helper.slot(0);
|
| - FeedbackSlot slot2 = helper.slot(1);
|
| + FeedbackSlot slot2 = helper.slot(2);
|
| CHECK_EQ(MONOMORPHIC,
|
| LoadGlobalICNexus(feedback_vector, slot1).StateFromFeedback());
|
| CHECK_EQ(MONOMORPHIC,
|
| @@ -480,11 +481,13 @@ TEST(ReferenceContextAllocatesNoSlots) {
|
| Handle<FeedbackVector> feedback_vector =
|
| handle(f->feedback_vector(), isolate);
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(4, helper.slot_count());
|
| + CHECK_EQ(6, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kStoreNamedSloppy);
|
| - CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| - CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kStoreNamedSloppy);
|
| - CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| + CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| + CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kStoreNamedSloppy);
|
| + CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 5, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| }
|
|
|
| {
|
| @@ -500,7 +503,7 @@ TEST(ReferenceContextAllocatesNoSlots) {
|
| // There should be one LOAD_IC, for the load of a.
|
| Handle<FeedbackVector> feedback_vector(f->feedback_vector());
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(2, helper.slot_count());
|
| + CHECK_EQ(3, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kStoreNamedStrict);
|
| }
|
| @@ -520,12 +523,13 @@ TEST(ReferenceContextAllocatesNoSlots) {
|
| // to call x and a LOAD_IC to load blue.
|
| Handle<FeedbackVector> feedback_vector(f->feedback_vector());
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(5, helper.slot_count());
|
| + CHECK_EQ(6, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kCall);
|
| CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kStoreNamedSloppy);
|
| - CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kCall);
|
| - CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kLoadProperty);
|
| + CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kCall);
|
| + CHECK_SLOT_KIND(helper, 5, FeedbackSlotKind::kLoadProperty);
|
| }
|
|
|
| {
|
| @@ -542,10 +546,11 @@ TEST(ReferenceContextAllocatesNoSlots) {
|
| // KEYED_LOAD_IC for the load of x[0] in the return statement.
|
| Handle<FeedbackVector> feedback_vector(f->feedback_vector());
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(3, helper.slot_count());
|
| + CHECK_EQ(4, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kStoreKeyedSloppy);
|
| - CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kLoadKeyed);
|
| + CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kLoadKeyed);
|
| }
|
|
|
| {
|
| @@ -563,10 +568,11 @@ TEST(ReferenceContextAllocatesNoSlots) {
|
| // KEYED_LOAD_IC for the load of x[0] in the return statement.
|
| Handle<FeedbackVector> feedback_vector(f->feedback_vector());
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(3, helper.slot_count());
|
| + CHECK_EQ(4, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kStoreKeyedStrict);
|
| - CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kLoadKeyed);
|
| + CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kLoadKeyed);
|
| }
|
|
|
| {
|
| @@ -584,14 +590,17 @@ TEST(ReferenceContextAllocatesNoSlots) {
|
| // of x.old and x.young.
|
| Handle<FeedbackVector> feedback_vector(f->feedback_vector());
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(7, helper.slot_count());
|
| + CHECK_EQ(10, helper.slot_count());
|
| CHECK_SLOT_KIND(helper, 0, FeedbackSlotKind::kLoadGlobalNotInsideTypeof);
|
| CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kStoreNamedStrict);
|
| - CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kStoreNamedStrict);
|
| + CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kTypeProfile);
|
| CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kStoreNamedStrict);
|
| - CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kLoadProperty);
|
| - CHECK_SLOT_KIND(helper, 5, FeedbackSlotKind::kLoadProperty);
|
| - CHECK_SLOT_KIND(helper, 6, FeedbackSlotKind::kBinaryOp);
|
| + CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 5, FeedbackSlotKind::kStoreNamedStrict);
|
| + CHECK_SLOT_KIND(helper, 6, FeedbackSlotKind::kTypeProfile);
|
| + CHECK_SLOT_KIND(helper, 7, FeedbackSlotKind::kLoadProperty);
|
| + CHECK_SLOT_KIND(helper, 8, FeedbackSlotKind::kLoadProperty);
|
| + CHECK_SLOT_KIND(helper, 9, FeedbackSlotKind::kBinaryOp);
|
| }
|
| }
|
|
|
| @@ -615,7 +624,7 @@ TEST(VectorStoreICBasic) {
|
| // There should be one IC slot.
|
| Handle<FeedbackVector> feedback_vector(f->feedback_vector());
|
| FeedbackVectorHelper helper(feedback_vector);
|
| - CHECK_EQ(1, helper.slot_count());
|
| + CHECK_EQ(2, helper.slot_count());
|
| FeedbackSlot slot(0);
|
| StoreICNexus nexus(feedback_vector, slot);
|
| CHECK_EQ(MONOMORPHIC, nexus.StateFromFeedback());
|
|
|