Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: src/code-stub-assembler.h

Issue 2775503006: [builtins] Improve performance of array.prototype.filter and map (Closed)
Patch Set: Remove old impl. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_CODE_STUB_ASSEMBLER_H_ 5 #ifndef V8_CODE_STUB_ASSEMBLER_H_
6 #define V8_CODE_STUB_ASSEMBLER_H_ 6 #define V8_CODE_STUB_ASSEMBLER_H_
7 7
8 #include <functional> 8 #include <functional>
9 9
10 #include "src/compiler/code-assembler.h" 10 #include "src/compiler/code-assembler.h"
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 Node* StoreFixedArrayElement( 491 Node* StoreFixedArrayElement(
492 Node* object, Node* index, Node* value, 492 Node* object, Node* index, Node* value,
493 WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER, 493 WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER,
494 int additional_offset = 0, 494 int additional_offset = 0,
495 ParameterMode parameter_mode = INTPTR_PARAMETERS); 495 ParameterMode parameter_mode = INTPTR_PARAMETERS);
496 496
497 Node* StoreFixedDoubleArrayElement( 497 Node* StoreFixedDoubleArrayElement(
498 Node* object, Node* index, Node* value, 498 Node* object, Node* index, Node* value,
499 ParameterMode parameter_mode = INTPTR_PARAMETERS); 499 ParameterMode parameter_mode = INTPTR_PARAMETERS);
500 500
501 Node* BuildAppendJSArray(ElementsKind kind, Node* context, Node* array, 501 // EnsureArrayPushable verifies that receiver is:
502 // 1. Is not a prototype.
503 // 2. Is not a dictionary.
504 // 3. Has a writeable length property.
505 // It returns ElementsKind as a node for further division into cases.
506 Node* EnsureArrayPushable(Node* receiver, Label* bailout);
507
508 void TryStoreArrayElement(ElementsKind kind, ParameterMode mode,
509 Label* bailout, Node* elements, Node* index,
510 Node* value);
511 Node* BuildAppendJSArray(ElementsKind kind, Node* array,
502 CodeStubArguments& args, Variable& arg_index, 512 CodeStubArguments& args, Variable& arg_index,
503 Label* bailout); 513 Label* bailout);
514 Node* BuildAppendJSArray(ElementsKind kind, Node* array, Node* value,
515 Label* bailout);
504 516
505 void StoreFieldsNoWriteBarrier(Node* start_address, Node* end_address, 517 void StoreFieldsNoWriteBarrier(Node* start_address, Node* end_address,
506 Node* value); 518 Node* value);
507 519
508 // Allocate a HeapNumber without initializing its value. 520 // Allocate a HeapNumber without initializing its value.
509 Node* AllocateHeapNumber(MutableMode mode = IMMUTABLE); 521 Node* AllocateHeapNumber(MutableMode mode = IMMUTABLE);
510 // Allocate a HeapNumber with a specific value. 522 // Allocate a HeapNumber with a specific value.
511 Node* AllocateHeapNumberWithValue(Node* value, MutableMode mode = IMMUTABLE); 523 Node* AllocateHeapNumberWithValue(Node* value, MutableMode mode = IMMUTABLE);
512 // Allocate a SeqOneByteString with the given length. 524 // Allocate a SeqOneByteString with the given length.
513 Node* AllocateSeqOneByteString(int length, AllocationFlags flags = kNone); 525 Node* AllocateSeqOneByteString(int length, AllocationFlags flags = kNone);
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
1484 } 1496 }
1485 #else 1497 #else
1486 #define CSA_SLOW_ASSERT(csa, x) ((void)0) 1498 #define CSA_SLOW_ASSERT(csa, x) ((void)0)
1487 #endif 1499 #endif
1488 1500
1489 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); 1501 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags);
1490 1502
1491 } // namespace internal 1503 } // namespace internal
1492 } // namespace v8 1504 } // namespace v8
1493 #endif // V8_CODE_STUB_ASSEMBLER_H_ 1505 #endif // V8_CODE_STUB_ASSEMBLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698