OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_NODE_PROPERTIES_H_ | 5 #ifndef V8_COMPILER_NODE_PROPERTIES_H_ |
6 #define V8_COMPILER_NODE_PROPERTIES_H_ | 6 #define V8_COMPILER_NODE_PROPERTIES_H_ |
7 | 7 |
8 #include "src/compiler/node.h" | 8 #include "src/compiler/node.h" |
9 #include "src/compiler/types.h" | 9 #include "src/compiler/types.h" |
10 #include "src/globals.h" | 10 #include "src/globals.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 kNoReceiverMaps, // No receiver maps inferred. | 135 kNoReceiverMaps, // No receiver maps inferred. |
136 kReliableReceiverMaps, // Receiver maps can be trusted. | 136 kReliableReceiverMaps, // Receiver maps can be trusted. |
137 kUnreliableReceiverMaps // Receiver maps might have changed (side-effect). | 137 kUnreliableReceiverMaps // Receiver maps might have changed (side-effect). |
138 }; | 138 }; |
139 static InferReceiverMapsResult InferReceiverMaps( | 139 static InferReceiverMapsResult InferReceiverMaps( |
140 Node* receiver, Node* effect, ZoneHandleSet<Map>* maps_return); | 140 Node* receiver, Node* effect, ZoneHandleSet<Map>* maps_return); |
141 | 141 |
142 // --------------------------------------------------------------------------- | 142 // --------------------------------------------------------------------------- |
143 // Context. | 143 // Context. |
144 | 144 |
145 // Try to retrieve the specialization context from the given {node}, | |
146 // optionally utilizing the knowledge about the (outermost) function | |
147 // {context}. | |
148 static MaybeHandle<Context> GetSpecializationContext( | |
149 Node* node, MaybeHandle<Context> context = MaybeHandle<Context>()); | |
150 | |
151 // Walk up the context chain from the given {node} until we reduce the {depth} | 145 // Walk up the context chain from the given {node} until we reduce the {depth} |
152 // to 0 or hit a node that does not extend the context chain ({depth} will be | 146 // to 0 or hit a node that does not extend the context chain ({depth} will be |
153 // updated accordingly). | 147 // updated accordingly). |
154 static Node* GetOuterContext(Node* node, size_t* depth); | 148 static Node* GetOuterContext(Node* node, size_t* depth); |
155 | 149 |
156 // --------------------------------------------------------------------------- | 150 // --------------------------------------------------------------------------- |
157 // Type. | 151 // Type. |
158 | 152 |
159 static bool IsTyped(Node* node) { return node->type() != nullptr; } | 153 static bool IsTyped(Node* node) { return node->type() != nullptr; } |
160 static Type* GetType(Node* node) { | 154 static Type* GetType(Node* node) { |
(...skipping 10 matching lines...) Expand all Loading... |
171 | 165 |
172 private: | 166 private: |
173 static inline bool IsInputRange(Edge edge, int first, int count); | 167 static inline bool IsInputRange(Edge edge, int first, int count); |
174 }; | 168 }; |
175 | 169 |
176 } // namespace compiler | 170 } // namespace compiler |
177 } // namespace internal | 171 } // namespace internal |
178 } // namespace v8 | 172 } // namespace v8 |
179 | 173 |
180 #endif // V8_COMPILER_NODE_PROPERTIES_H_ | 174 #endif // V8_COMPILER_NODE_PROPERTIES_H_ |
OLD | NEW |