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

Side by Side Diff: src/compiler/js-native-context-specialization.h

Issue 2196653002: [turbofan] Introduce a dedicated CheckMaps simplified operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@TurboFan_JSNativeContextSpecialization_NonElementKeyedAccess
Patch Set: Created 4 years, 4 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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_ 5 #ifndef V8_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_
6 #define V8_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_ 6 #define V8_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_
7 7
8 #include "src/base/flags.h" 8 #include "src/base/flags.h"
9 #include "src/compiler/graph-reducer.h" 9 #include "src/compiler/graph-reducer.h"
10 #include "src/deoptimize-reason.h" 10 #include "src/deoptimize-reason.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 AccessMode access_mode); 107 AccessMode access_mode);
108 108
109 // Construct the appropriate subgraph for element access. 109 // Construct the appropriate subgraph for element access.
110 ValueEffectControl BuildElementAccess(Node* receiver, Node* index, 110 ValueEffectControl BuildElementAccess(Node* receiver, Node* index,
111 Node* value, Node* effect, 111 Node* value, Node* effect,
112 Node* control, 112 Node* control,
113 Handle<Context> native_context, 113 Handle<Context> native_context,
114 ElementAccessInfo const& access_info, 114 ElementAccessInfo const& access_info,
115 AccessMode access_mode); 115 AccessMode access_mode);
116 116
117 // Construct an appropriate map check.
118 Node* BuildCheckMaps(Node* receiver, Node* effect, Node* control,
119 std::vector<Handle<Map>> const& maps);
120
121 // Construct an appropriate heap object check.
122 Node* BuildCheckTaggedPointer(Node* receiver, Node* effect, Node* control);
123
117 // Adds stability dependencies on all prototypes of every class in 124 // Adds stability dependencies on all prototypes of every class in
118 // {receiver_type} up to (and including) the {holder}. 125 // {receiver_type} up to (and including) the {holder}.
119 void AssumePrototypesStable(std::vector<Handle<Map>> const& receiver_maps, 126 void AssumePrototypesStable(std::vector<Handle<Map>> const& receiver_maps,
120 Handle<Context> native_context, 127 Handle<Context> native_context,
121 Handle<JSObject> holder); 128 Handle<JSObject> holder);
122 129
123 // Extract receiver maps from {nexus} and filter based on {receiver} if 130 // Extract receiver maps from {nexus} and filter based on {receiver} if
124 // possible. 131 // possible.
125 bool ExtractReceiverMaps(Node* receiver, Node* effect, 132 bool ExtractReceiverMaps(Node* receiver, Node* effect,
126 FeedbackNexus const& nexus, 133 FeedbackNexus const& nexus,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 DISALLOW_COPY_AND_ASSIGN(JSNativeContextSpecialization); 167 DISALLOW_COPY_AND_ASSIGN(JSNativeContextSpecialization);
161 }; 168 };
162 169
163 DEFINE_OPERATORS_FOR_FLAGS(JSNativeContextSpecialization::Flags) 170 DEFINE_OPERATORS_FOR_FLAGS(JSNativeContextSpecialization::Flags)
164 171
165 } // namespace compiler 172 } // namespace compiler
166 } // namespace internal 173 } // namespace internal
167 } // namespace v8 174 } // namespace v8
168 175
169 #endif // V8_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_ 176 #endif // V8_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698