Update V8 to version 4.1.0.21
This is a cherry-pick of all commits up to and including the
4.1.0.21 cherry-pick in Chromium.
Original commit message:
Version 4.1.0.21 (cherry-pick)
Merged 206e9136bde0f2b5ae8cb77afbb1e7833e5bd412
Unlink pages from the space page list after evacuation.
BUG=430201
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/953813002
Cr-Commit-Position: refs/branch-heads/4.1@{#22}
Cr-Branched-From: 2e08d2a7aa9d65d269d8c57aba82eb38a8cb0a18-refs/heads/candidates@{#25353}
---
FPIIM-449
Change-Id: I8c23c7bbb70772b4858fe8a47b64fa97ee0d1f8c
diff --git a/src/compiler/typer.h b/src/compiler/typer.h
index 2957e4b..b65a9a5 100644
--- a/src/compiler/typer.h
+++ b/src/compiler/typer.h
@@ -15,43 +15,62 @@
namespace internal {
namespace compiler {
+// Forward declarations.
+class LazyTypeCache;
+
+
class Typer {
public:
- explicit Typer(Zone* zone);
+ explicit Typer(Graph* graph, MaybeHandle<Context> context);
+ ~Typer();
- void Init(Node* node);
- void Run(Graph* graph, MaybeHandle<Context> context);
- void Narrow(Graph* graph, Node* node, MaybeHandle<Context> context);
- void Widen(Graph* graph, Node* node, MaybeHandle<Context> context);
+ void Run();
- void DecorateGraph(Graph* graph);
-
- Zone* zone() { return zone_; }
- Isolate* isolate() { return zone_->isolate(); }
+ Graph* graph() { return graph_; }
+ MaybeHandle<Context> context() { return context_; }
+ Zone* zone() { return graph_->zone(); }
+ Isolate* isolate() { return zone()->isolate(); }
private:
class Visitor;
- class RunVisitor;
- class NarrowVisitor;
- class WidenVisitor;
+ class Decorator;
+
+ Graph* graph_;
+ MaybeHandle<Context> context_;
+ Decorator* decorator_;
Zone* zone_;
+ Type* boolean_or_number;
+ Type* undefined_or_null;
+ Type* undefined_or_number;
+ Type* negative_signed32;
+ Type* non_negative_signed32;
+ Type* singleton_false;
+ Type* singleton_true;
+ Type* singleton_zero;
+ Type* singleton_one;
+ Type* zero_or_one;
+ Type* zeroish;
+ Type* signed32ish;
+ Type* unsigned32ish;
+ Type* falsish;
+ Type* truish;
+ Type* integer;
+ Type* weakint;
Type* number_fun0_;
Type* number_fun1_;
Type* number_fun2_;
- Type* imul_fun_;
- Type* array_buffer_fun_;
- Type* int8_array_fun_;
- Type* int16_array_fun_;
- Type* int32_array_fun_;
- Type* uint8_array_fun_;
- Type* uint16_array_fun_;
- Type* uint32_array_fun_;
- Type* float32_array_fun_;
- Type* float64_array_fun_;
+ Type* weakint_fun1_;
+ Type* random_fun_;
+ LazyTypeCache* cache_;
+
+ ZoneVector<Handle<Object> > weaken_min_limits_;
+ ZoneVector<Handle<Object> > weaken_max_limits_;
+ DISALLOW_COPY_AND_ASSIGN(Typer);
};
-}
-}
-} // namespace v8::internal::compiler
+
+} // namespace compiler
+} // namespace internal
+} // namespace v8
#endif // V8_COMPILER_TYPER_H_