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 |