Line data Source code
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
3 : // found in the LICENSE file.
4 :
5 : #ifndef V8_CRANKSHAFT_HYDROGEN_INFER_TYPES_H_
6 : #define V8_CRANKSHAFT_HYDROGEN_INFER_TYPES_H_
7 :
8 : #include "src/crankshaft/hydrogen.h"
9 :
10 : namespace v8 {
11 : namespace internal {
12 :
13 :
14 283730 : class HInferTypesPhase : public HPhase {
15 : public:
16 283730 : explicit HInferTypesPhase(HGraph* graph)
17 : : HPhase("H_Inferring types", graph), worklist_(8, zone()),
18 567460 : in_worklist_(graph->GetMaximumValueID(), zone()) { }
19 :
20 : void Run() {
21 283730 : InferTypes(0, graph()->blocks()->length() - 1);
22 : }
23 :
24 : private:
25 : void InferTypes(int from_inclusive, int to_inclusive);
26 :
27 : ZoneList<HValue*> worklist_;
28 : BitVector in_worklist_;
29 :
30 : DISALLOW_COPY_AND_ASSIGN(HInferTypesPhase);
31 : };
32 :
33 :
34 : } // namespace internal
35 : } // namespace v8
36 :
37 : #endif // V8_CRANKSHAFT_HYDROGEN_INFER_TYPES_H_
|