Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / v8 / src / hydrogen-store-elimination.h
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_STORE_ELIMINATION_H_
6 #define V8_HYDROGEN_STORE_ELIMINATION_H_
7
8 #include "hydrogen.h"
9 #include "hydrogen-alias-analysis.h"
10
11 namespace v8 {
12 namespace internal {
13
14 class HStoreEliminationPhase : public HPhase {
15  public:
16   explicit HStoreEliminationPhase(HGraph* graph)
17     : HPhase("H_Store elimination", graph),
18       unobserved_(10, zone()),
19       aliasing_() { }
20
21   void Run();
22  private:
23   ZoneList<HStoreNamedField*> unobserved_;
24   HAliasAnalyzer* aliasing_;
25
26   void ProcessStore(HStoreNamedField* store);
27   void ProcessLoad(HLoadNamedField* load);
28   void ProcessInstr(HInstruction* instr, GVNFlagSet flags);
29 };
30
31
32 } }  // namespace v8::internal
33
34 #endif