Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(524)

Side by Side Diff: src/compiler/typer.cc

Issue 1088993003: Replace OVERRIDE->override and FINAL->final since we now require C++11. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/source-position.cc ('k') | src/compiler/value-numbering-reducer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 #include "src/base/flags.h" 5 #include "src/base/flags.h"
6 #include "src/bootstrapper.h" 6 #include "src/bootstrapper.h"
7 #include "src/compiler/graph-reducer.h" 7 #include "src/compiler/graph-reducer.h"
8 #include "src/compiler/js-operator.h" 8 #include "src/compiler/js-operator.h"
9 #include "src/compiler/node.h" 9 #include "src/compiler/node.h"
10 #include "src/compiler/node-properties.h" 10 #include "src/compiler/node-properties.h"
(...skipping 24 matching lines...) Expand all
35 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ 35 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
36 k##Type, k##Type##Array, k##Type##ArrayFunc, 36 k##Type, k##Type##Array, k##Type##ArrayFunc,
37 TYPED_ARRAYS(TYPED_ARRAY_CASE) 37 TYPED_ARRAYS(TYPED_ARRAY_CASE)
38 #undef TYPED_ARRAY_CASE 38 #undef TYPED_ARRAY_CASE
39 kNumLazyCachedTypes 39 kNumLazyCachedTypes
40 }; 40 };
41 41
42 42
43 // Constructs and caches types lazily. 43 // Constructs and caches types lazily.
44 // TODO(turbofan): these types could be globally cached or cached per isolate. 44 // TODO(turbofan): these types could be globally cached or cached per isolate.
45 class LazyTypeCache FINAL : public ZoneObject { 45 class LazyTypeCache final : public ZoneObject {
46 public: 46 public:
47 explicit LazyTypeCache(Isolate* isolate, Zone* zone) 47 explicit LazyTypeCache(Isolate* isolate, Zone* zone)
48 : isolate_(isolate), zone_(zone) { 48 : isolate_(isolate), zone_(zone) {
49 memset(cache_, 0, sizeof(cache_)); 49 memset(cache_, 0, sizeof(cache_));
50 } 50 }
51 51
52 inline Type* Get(LazyCachedType type) { 52 inline Type* Get(LazyCachedType type) {
53 int index = static_cast<int>(type); 53 int index = static_cast<int>(type);
54 DCHECK(index < kNumLazyCachedTypes); 54 DCHECK(index < kNumLazyCachedTypes);
55 if (cache_[index] == NULL) cache_[index] = Create(type); 55 if (cache_[index] == NULL) cache_[index] = Create(type);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 Factory* factory() const { return isolate()->factory(); } 134 Factory* factory() const { return isolate()->factory(); }
135 Isolate* isolate() const { return isolate_; } 135 Isolate* isolate() const { return isolate_; }
136 Zone* zone() const { return zone_; } 136 Zone* zone() const { return zone_; }
137 137
138 Type* cache_[kNumLazyCachedTypes]; 138 Type* cache_[kNumLazyCachedTypes];
139 Isolate* isolate_; 139 Isolate* isolate_;
140 Zone* zone_; 140 Zone* zone_;
141 }; 141 };
142 142
143 143
144 class Typer::Decorator FINAL : public GraphDecorator { 144 class Typer::Decorator final : public GraphDecorator {
145 public: 145 public:
146 explicit Decorator(Typer* typer) : typer_(typer) {} 146 explicit Decorator(Typer* typer) : typer_(typer) {}
147 void Decorate(Node* node, bool incomplete) FINAL; 147 void Decorate(Node* node, bool incomplete) final;
148 148
149 private: 149 private:
150 Typer* typer_; 150 Typer* typer_;
151 }; 151 };
152 152
153 153
154 Typer::Typer(Isolate* isolate, Graph* graph, MaybeHandle<Context> context) 154 Typer::Typer(Isolate* isolate, Graph* graph, MaybeHandle<Context> context)
155 : isolate_(isolate), 155 : isolate_(isolate),
156 graph_(graph), 156 graph_(graph),
157 context_(context), 157 context_(context),
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 Typer::~Typer() { 208 Typer::~Typer() {
209 graph_->RemoveDecorator(decorator_); 209 graph_->RemoveDecorator(decorator_);
210 } 210 }
211 211
212 212
213 class Typer::Visitor : public Reducer { 213 class Typer::Visitor : public Reducer {
214 public: 214 public:
215 explicit Visitor(Typer* typer) 215 explicit Visitor(Typer* typer)
216 : typer_(typer), weakened_nodes_(typer->zone()) {} 216 : typer_(typer), weakened_nodes_(typer->zone()) {}
217 217
218 Reduction Reduce(Node* node) OVERRIDE { 218 Reduction Reduce(Node* node) override {
219 if (node->op()->ValueOutputCount() == 0) return NoChange(); 219 if (node->op()->ValueOutputCount() == 0) return NoChange();
220 switch (node->opcode()) { 220 switch (node->opcode()) {
221 #define DECLARE_CASE(x) \ 221 #define DECLARE_CASE(x) \
222 case IrOpcode::k##x: \ 222 case IrOpcode::k##x: \
223 return UpdateBounds(node, TypeBinaryOp(node, x##Typer)); 223 return UpdateBounds(node, TypeBinaryOp(node, x##Typer));
224 JS_SIMPLE_BINOP_LIST(DECLARE_CASE) 224 JS_SIMPLE_BINOP_LIST(DECLARE_CASE)
225 #undef DECLARE_CASE 225 #undef DECLARE_CASE
226 226
227 #define DECLARE_CASE(x) \ 227 #define DECLARE_CASE(x) \
228 case IrOpcode::k##x: \ 228 case IrOpcode::k##x: \
(...skipping 2117 matching lines...) Expand 10 before | Expand all | Expand 10 after
2346 TYPED_ARRAYS(TYPED_ARRAY_CASE) 2346 TYPED_ARRAYS(TYPED_ARRAY_CASE)
2347 #undef TYPED_ARRAY_CASE 2347 #undef TYPED_ARRAY_CASE
2348 } 2348 }
2349 } 2349 }
2350 return Type::Constant(value, zone()); 2350 return Type::Constant(value, zone());
2351 } 2351 }
2352 2352
2353 } // namespace compiler 2353 } // namespace compiler
2354 } // namespace internal 2354 } // namespace internal
2355 } // namespace v8 2355 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/source-position.cc ('k') | src/compiler/value-numbering-reducer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698