| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ | 
| 6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 
| 7 | 7 | 
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" | 
| 9 #include "vm/ast.h" | 9 #include "vm/ast.h" | 
| 10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" | 
| (...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 890 | 890 | 
| 891   void Unsupported(FlowGraphCompiler* compiler); | 891   void Unsupported(FlowGraphCompiler* compiler); | 
| 892 | 892 | 
| 893  protected: | 893  protected: | 
| 894   // GetDeoptId and/or CopyDeoptIdFrom. | 894   // GetDeoptId and/or CopyDeoptIdFrom. | 
| 895   friend class CallSiteInliner; | 895   friend class CallSiteInliner; | 
| 896   friend class LICM; | 896   friend class LICM; | 
| 897   friend class ComparisonInstr; | 897   friend class ComparisonInstr; | 
| 898   friend class Scheduler; | 898   friend class Scheduler; | 
| 899   friend class BlockEntryInstr; | 899   friend class BlockEntryInstr; | 
|  | 900   friend class CatchBlockEntryInstr;  // deopt_id_ | 
| 900 | 901 | 
| 901   // Fetch deopt id without checking if this computation can deoptimize. | 902   // Fetch deopt id without checking if this computation can deoptimize. | 
| 902   intptr_t GetDeoptId() const { | 903   intptr_t GetDeoptId() const { | 
| 903     return deopt_id_; | 904     return deopt_id_; | 
| 904   } | 905   } | 
| 905 | 906 | 
| 906   void CopyDeoptIdFrom(const Instruction& instr) { | 907   void CopyDeoptIdFrom(const Instruction& instr) { | 
| 907     deopt_id_ = instr.deopt_id_; | 908     deopt_id_ = instr.deopt_id_; | 
| 908   } | 909   } | 
| 909 | 910 | 
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1557 | 1558 | 
| 1558 class CatchBlockEntryInstr : public BlockEntryInstr { | 1559 class CatchBlockEntryInstr : public BlockEntryInstr { | 
| 1559  public: | 1560  public: | 
| 1560   CatchBlockEntryInstr(intptr_t block_id, | 1561   CatchBlockEntryInstr(intptr_t block_id, | 
| 1561                        intptr_t try_index, | 1562                        intptr_t try_index, | 
| 1562                        GraphEntryInstr* graph_entry, | 1563                        GraphEntryInstr* graph_entry, | 
| 1563                        const Array& handler_types, | 1564                        const Array& handler_types, | 
| 1564                        intptr_t catch_try_index, | 1565                        intptr_t catch_try_index, | 
| 1565                        const LocalVariable& exception_var, | 1566                        const LocalVariable& exception_var, | 
| 1566                        const LocalVariable& stacktrace_var, | 1567                        const LocalVariable& stacktrace_var, | 
| 1567                        bool needs_stacktrace) | 1568                        bool needs_stacktrace, | 
|  | 1569                        intptr_t deopt_id) | 
| 1568       : BlockEntryInstr(block_id, try_index), | 1570       : BlockEntryInstr(block_id, try_index), | 
| 1569         graph_entry_(graph_entry), | 1571         graph_entry_(graph_entry), | 
| 1570         predecessor_(NULL), | 1572         predecessor_(NULL), | 
| 1571         catch_handler_types_(Array::ZoneHandle(handler_types.raw())), | 1573         catch_handler_types_(Array::ZoneHandle(handler_types.raw())), | 
| 1572         catch_try_index_(catch_try_index), | 1574         catch_try_index_(catch_try_index), | 
| 1573         exception_var_(exception_var), | 1575         exception_var_(exception_var), | 
| 1574         stacktrace_var_(stacktrace_var), | 1576         stacktrace_var_(stacktrace_var), | 
| 1575         needs_stacktrace_(needs_stacktrace) { } | 1577         needs_stacktrace_(needs_stacktrace) { | 
|  | 1578     deopt_id_ = deopt_id; | 
|  | 1579   } | 
| 1576 | 1580 | 
| 1577   DECLARE_INSTRUCTION(CatchBlockEntry) | 1581   DECLARE_INSTRUCTION(CatchBlockEntry) | 
| 1578 | 1582 | 
| 1579   virtual intptr_t PredecessorCount() const { | 1583   virtual intptr_t PredecessorCount() const { | 
| 1580     return (predecessor_ == NULL) ? 0 : 1; | 1584     return (predecessor_ == NULL) ? 0 : 1; | 
| 1581   } | 1585   } | 
| 1582   virtual BlockEntryInstr* PredecessorAt(intptr_t index) const { | 1586   virtual BlockEntryInstr* PredecessorAt(intptr_t index) const { | 
| 1583     ASSERT((index == 0) && (predecessor_ != NULL)); | 1587     ASSERT((index == 0) && (predecessor_ != NULL)); | 
| 1584     return predecessor_; | 1588     return predecessor_; | 
| 1585   } | 1589   } | 
| (...skipping 6710 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 8296   LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const {    \ | 8300   LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const {    \ | 
| 8297     UNIMPLEMENTED();                                                          \ | 8301     UNIMPLEMENTED();                                                          \ | 
| 8298     return NULL;                                                              \ | 8302     return NULL;                                                              \ | 
| 8299   }                                                                           \ | 8303   }                                                                           \ | 
| 8300   void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 8304   void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 
| 8301 | 8305 | 
| 8302 | 8306 | 
| 8303 }  // namespace dart | 8307 }  // namespace dart | 
| 8304 | 8308 | 
| 8305 #endif  // VM_INTERMEDIATE_LANGUAGE_H_ | 8309 #endif  // VM_INTERMEDIATE_LANGUAGE_H_ | 
| OLD | NEW | 
|---|