1fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org// Copyright 2013 the V8 project authors. All rights reserved.
23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be
33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file.
47979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
5fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org#ifndef V8_HYDROGEN_BCH_H_
6fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org#define V8_HYDROGEN_BCH_H_
77979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
8196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "src/hydrogen.h"
97979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
10fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.orgnamespace v8 {
11fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.orgnamespace internal {
127979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
137979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
14fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.orgclass HBoundsCheckHoistingPhase : public HPhase {
15fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org public:
16fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org  explicit HBoundsCheckHoistingPhase(HGraph* graph)
17fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org      : HPhase("H_Bounds checks hoisting", graph) { }
18fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org
19fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org  void Run() {
20fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org    HoistRedundantBoundsChecks();
21fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org  }
22fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org
23fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org private:
24fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org  void HoistRedundantBoundsChecks();
25fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org
26fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org  DISALLOW_COPY_AND_ASSIGN(HBoundsCheckHoistingPhase);
27fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org};
28fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org
297979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
30fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org} }  // namespace v8::internal
317979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org
32fb732b17922ea75830be4db6b80534c4827d8a55jkummerow@chromium.org#endif  // V8_HYDROGEN_BCE_H_
33