bounds_check_elimination.h revision 7c3952f423b8213083d60596a5f0bf4237ca3f7b
1f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang/* 2f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * Copyright (C) 2014 The Android Open Source Project 3f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * 4f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * Licensed under the Apache License, Version 2.0 (the "License"); 5f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * you may not use this file except in compliance with the License. 6f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * You may obtain a copy of the License at 7f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * 8f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * http://www.apache.org/licenses/LICENSE-2.0 9f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * 10f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * Unless required by applicable law or agreed to in writing, software 11f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * distributed under the License is distributed on an "AS IS" BASIS, 12f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * See the License for the specific language governing permissions and 14f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang * limitations under the License. 15f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang */ 16f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 17f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang#ifndef ART_COMPILER_OPTIMIZING_BOUNDS_CHECK_ELIMINATION_H_ 18f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang#define ART_COMPILER_OPTIMIZING_BOUNDS_CHECK_ELIMINATION_H_ 19f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 20f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang#include "optimization.h" 21f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 22f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yangnamespace art { 23f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 24f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yangclass BoundsCheckElimination : public HOptimization { 25f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang public: 267c3952f423b8213083d60596a5f0bf4237ca3f7bAndreas Gampe explicit BoundsCheckElimination(HGraph* graph) 277c3952f423b8213083d60596a5f0bf4237ca3f7bAndreas Gampe : HOptimization(graph, true, kBoundsCheckEliminiationPassName) {} 28f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 29f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang void Run() OVERRIDE; 30f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 317c3952f423b8213083d60596a5f0bf4237ca3f7bAndreas Gampe static constexpr const char* kBoundsCheckEliminiationPassName = "BCE"; 327c3952f423b8213083d60596a5f0bf4237ca3f7bAndreas Gampe 33f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang private: 34f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang DISALLOW_COPY_AND_ASSIGN(BoundsCheckElimination); 35f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang}; 36f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 37f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang} // namespace art 38f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang 39f384f88d4d1e89df82f47fbc7245a8acc9c2d49cMingyao Yang#endif // ART_COMPILER_OPTIMIZING_BOUNDS_CHECK_ELIMINATION_H_ 40