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_HYDROGEN_INFER_TYPES_H_ 6 #define V8_HYDROGEN_INFER_TYPES_H_ 7 8 #include "src/hydrogen.h" 9 10 namespace v8 { 11 namespace internal { 12 13 14 class HInferTypesPhase : public HPhase { 15 public: HInferTypesPhase(HGraph * graph)16 explicit HInferTypesPhase(HGraph* graph) 17 : HPhase("H_Inferring types", graph), worklist_(8, zone()), 18 in_worklist_(graph->GetMaximumValueID(), zone()) { } 19 Run()20 void Run() { 21 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 v8::internal 35 36 #endif // V8_HYDROGEN_INFER_TYPES_H_ 37