Chromium Code Reviews| Index: src/hydrogen.h |
| diff --git a/src/hydrogen.h b/src/hydrogen.h |
| index 3748970585155bb876219b0a70a777aa9b49e32f..a1bc873bd4fbd6cdae3966094a637692a3389486 100644 |
| --- a/src/hydrogen.h |
| +++ b/src/hydrogen.h |
| @@ -425,7 +425,8 @@ enum FrameType { |
| JS_CONSTRUCT, |
| JS_GETTER, |
| JS_SETTER, |
| - ARGUMENTS_ADAPTOR |
| + ARGUMENTS_ADAPTOR, |
| + STUB |
| }; |
| @@ -436,6 +437,8 @@ class HEnvironment: public ZoneObject { |
| Handle<JSFunction> closure, |
| Zone* zone); |
| + explicit HEnvironment(Zone* zone); |
| + |
| HEnvironment* arguments_environment() { |
| return outer()->frame_type() == ARGUMENTS_ADAPTOR ? outer() : this; |
| } |
| @@ -1119,24 +1122,51 @@ class HGraphBuilder: public AstVisitor { |
| HValue* right); |
| HInstruction* BuildIncrement(bool returns_original_input, |
| CountOperation* expr); |
| - HInstruction* BuildFastElementAccess(HValue* elements, |
| - HValue* checked_key, |
| - HValue* val, |
| - HValue* dependency, |
| - ElementsKind elements_kind, |
| - bool is_store); |
| + HLoadNamedField* BuildLoadNamedField(HValue* object, |
|
Jakob Kummerow
2012/11/19 12:36:00
merge problem?
danno
2012/11/26 17:16:18
Done.
|
| + Property* expr, |
| + Handle<Map> type, |
| + LookupResult* result, |
| + bool smi_and_map_check); |
| + HInstruction* BuildLoadNamedGeneric(HValue* object, Property* expr); |
| + HInstruction* BuildLoadKeyedGeneric(HValue* object, |
| + HValue* key); |
| + static HInstruction* BuildExternalArrayElementAccess( |
| + HGraph* graph, |
| + HBasicBlock* current_block, |
| + HValue* external_elements, |
| + HValue* checked_key, |
| + HValue* val, |
| + HValue* dependency, |
| + ElementsKind elements_kind, |
| + bool is_store, |
| + Zone* zone); |
| + static HInstruction* BuildFastElementAccess( |
| + HGraph* graph, |
| + HBasicBlock* current_block, |
| + HValue* elements, |
| + HValue* checked_key, |
| + HValue* val, |
| + HValue* dependency, |
| + ElementsKind elements_kind, |
| + bool is_store, |
| + Zone* zone); |
| HInstruction* TryBuildConsolidatedElementLoad(HValue* object, |
| HValue* key, |
| HValue* val, |
| SmallMapList* maps); |
| - HInstruction* BuildUncheckedMonomorphicElementAccess(HValue* object, |
| - HValue* key, |
| - HValue* val, |
| - HCheckMaps* mapcheck, |
| - Handle<Map> map, |
| - bool is_store); |
| + static HInstruction* BuildUncheckedMonomorphicElementAccess( |
| + HGraph* graph, |
| + HBasicBlock* current_block, |
| + HValue* object, |
| + HValue* key, |
| + HValue* val, |
| + HCheckMaps* mapcheck, |
| + bool is_js_array, |
| + ElementsKind elements_kind, |
| + bool is_store, |
| + Zone* zone); |
| HInstruction* BuildMonomorphicElementAccess(HValue* object, |
| HValue* key, |
| @@ -1177,14 +1207,6 @@ class HGraphBuilder: public AstVisitor { |
| Handle<String> name, |
| Property* expr, |
| Handle<Map> map); |
| - HInstruction* BuildLoadKeyedGeneric(HValue* object, HValue* key); |
| - HInstruction* BuildExternalArrayElementAccess( |
| - HValue* external_elements, |
| - HValue* checked_key, |
| - HValue* val, |
| - HValue* dependency, |
| - ElementsKind elements_kind, |
| - bool is_store); |
| void AddCheckMapsWithTransitions(HValue* object, |
| Handle<Map> map); |
| @@ -1253,6 +1275,7 @@ class HGraphBuilder: public AstVisitor { |
| friend class FunctionState; // Pushes and pops the state stack. |
| friend class AstContext; // Pushes and pops the AST context stack. |
| + friend class KeyedLoadFastElementStub; |
| DISALLOW_COPY_AND_ASSIGN(HGraphBuilder); |
| }; |
| @@ -1416,7 +1439,7 @@ class HPhase BASE_EMBEDDED { |
| class HTracer: public Malloced { |
| public: |
| - void TraceCompilation(FunctionLiteral* function); |
| + void TraceCompilation(CompilationInfo* info); |
| void TraceHydrogen(const char* name, HGraph* graph); |
| void TraceLithium(const char* name, LChunk* chunk); |
| void TraceLiveRanges(const char* name, LAllocator* allocator); |