| 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 |