Home | History | Annotate | Download | only in src
      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 "src/hydrogen.h"
      9 #include "src/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
     35