| 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_CRANKSHAFT_TYPING_H_ | 5 #ifndef V8_CRANKSHAFT_TYPING_H_ |
| 6 #define V8_CRANKSHAFT_TYPING_H_ | 6 #define V8_CRANKSHAFT_TYPING_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/ast/ast-type-bounds.h" | 9 #include "src/ast/ast-type-bounds.h" |
| 10 #include "src/ast/ast-types.h" |
| 10 #include "src/ast/scopes.h" | 11 #include "src/ast/scopes.h" |
| 11 #include "src/ast/variables.h" | 12 #include "src/ast/variables.h" |
| 12 #include "src/effects.h" | 13 #include "src/effects.h" |
| 13 #include "src/type-info.h" | 14 #include "src/type-info.h" |
| 14 #include "src/types.h" | |
| 15 #include "src/zone.h" | 15 #include "src/zone.h" |
| 16 | 16 |
| 17 namespace v8 { | 17 namespace v8 { |
| 18 namespace internal { | 18 namespace internal { |
| 19 | 19 |
| 20 class FunctionLiteral; | 20 class FunctionLiteral; |
| 21 | 21 |
| 22 class AstTyper final : public AstVisitor<AstTyper> { | 22 class AstTyper final : public AstVisitor<AstTyper> { |
| 23 public: | 23 public: |
| 24 AstTyper(Isolate* isolate, Zone* zone, Handle<JSFunction> closure, | 24 AstTyper(Isolate* isolate, Zone* zone, Handle<JSFunction> closure, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 42 DeclarationScope* scope_; | 42 DeclarationScope* scope_; |
| 43 BailoutId osr_ast_id_; | 43 BailoutId osr_ast_id_; |
| 44 FunctionLiteral* root_; | 44 FunctionLiteral* root_; |
| 45 TypeFeedbackOracle oracle_; | 45 TypeFeedbackOracle oracle_; |
| 46 Store store_; | 46 Store store_; |
| 47 AstTypeBounds* bounds_; | 47 AstTypeBounds* bounds_; |
| 48 | 48 |
| 49 Zone* zone() const { return zone_; } | 49 Zone* zone() const { return zone_; } |
| 50 TypeFeedbackOracle* oracle() { return &oracle_; } | 50 TypeFeedbackOracle* oracle() { return &oracle_; } |
| 51 | 51 |
| 52 void NarrowType(Expression* e, Bounds b) { | 52 void NarrowType(Expression* e, AstBounds b) { |
| 53 bounds_->set(e, Bounds::Both(bounds_->get(e), b, zone())); | 53 bounds_->set(e, AstBounds::Both(bounds_->get(e), b, zone())); |
| 54 } | 54 } |
| 55 void NarrowLowerType(Expression* e, Type* t) { | 55 void NarrowLowerType(Expression* e, AstType* t) { |
| 56 bounds_->set(e, Bounds::NarrowLower(bounds_->get(e), t, zone())); | 56 bounds_->set(e, AstBounds::NarrowLower(bounds_->get(e), t, zone())); |
| 57 } | 57 } |
| 58 | 58 |
| 59 Effects EnterEffects() { | 59 Effects EnterEffects() { |
| 60 store_ = store_.Push(); | 60 store_ = store_.Push(); |
| 61 return store_.Top(); | 61 return store_.Top(); |
| 62 } | 62 } |
| 63 void ExitEffects() { store_ = store_.Pop(); } | 63 void ExitEffects() { store_ = store_.Pop(); } |
| 64 | 64 |
| 65 int parameter_index(int index) { return -index - 2; } | 65 int parameter_index(int index) { return -index - 2; } |
| 66 int stack_local_index(int index) { return index; } | 66 int stack_local_index(int index) { return index; } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 80 AST_NODE_LIST(DECLARE_VISIT) | 80 AST_NODE_LIST(DECLARE_VISIT) |
| 81 #undef DECLARE_VISIT | 81 #undef DECLARE_VISIT |
| 82 | 82 |
| 83 DISALLOW_COPY_AND_ASSIGN(AstTyper); | 83 DISALLOW_COPY_AND_ASSIGN(AstTyper); |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 } // namespace internal | 86 } // namespace internal |
| 87 } // namespace v8 | 87 } // namespace v8 |
| 88 | 88 |
| 89 #endif // V8_CRANKSHAFT_TYPING_H_ | 89 #endif // V8_CRANKSHAFT_TYPING_H_ |
| OLD | NEW |