12469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler/* 22469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * Copyright (C) 2014 The Android Open Source Project 32469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * 42469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * Licensed under the Apache License, Version 2.0 (the "License"); 52469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * you may not use this file except in compliance with the License. 62469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * You may obtain a copy of the License at 72469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * 82469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * http://www.apache.org/licenses/LICENSE-2.0 92469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * 102469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * Unless required by applicable law or agreed to in writing, software 112469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * distributed under the License is distributed on an "AS IS" BASIS, 122469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * See the License for the specific language governing permissions and 142469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * limitations under the License. 152469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler */ 162469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 172469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler#ifndef ART_COMPILER_DEX_PASS_DRIVER_ME_OPTS_H_ 182469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler#define ART_COMPILER_DEX_PASS_DRIVER_ME_OPTS_H_ 192469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 202469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler#include "pass_driver_me.h" 212469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 222469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beylernamespace art { 232469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 242469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler// Forward Declarations. 252469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beylerstruct CompilationUnit; 262469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beylerclass Pass; 272469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beylerclass PassDataHolder; 282469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 292469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beylerclass PassDriverMEOpts : public PassDriverME<PassDriverMEOpts> { 302469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler public: 312469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler explicit PassDriverMEOpts(CompilationUnit* cu):PassDriverME<PassDriverMEOpts>(cu) { 322469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler } 332469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 342469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler ~PassDriverMEOpts() { 352469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler } 362469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 372469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler /** 382469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler * @brief Apply a patch: perform start/work/end functions. 392469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler */ 402469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler virtual void ApplyPass(PassDataHolder* data, const Pass* pass); 412469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler}; 422469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler 432469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler} // namespace art 442469e60e6ff08c2a0b4cd1e209246c5d91027679Jean Christophe Beyler#endif // ART_COMPILER_DEX_PASS_DRIVER_ME_OPTS_H_ 45