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 11namespace v8 { 12namespace internal { 13 14class 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