13f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao/* 23f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * Copyright 2012, The Android Open Source Project 33f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * 43f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * Licensed under the Apache License, Version 2.0 (the "License"); 53f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * you may not use this file except in compliance with the License. 63f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * You may obtain a copy of the License at 73f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * 83f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * http://www.apache.org/licenses/LICENSE-2.0 93f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * 103f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * Unless required by applicable law or agreed to in writing, software 113f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * distributed under the License is distributed on an "AS IS" BASIS, 123f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * See the License for the specific language governing permissions and 143f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao * limitations under the License. 153f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao */ 163f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 173f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao#ifndef BCC_ABC_COMPILER_H 183f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao#define BCC_ABC_COMPILER_H 193f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 203f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao#include "bcc/Compiler.h" 213f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 223f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liaonamespace bcc { 233f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 2442b88c3b3cdadf6fcd367ee2bc620c0c94bbfe1bShih-wei Liaoclass ABCCompilerDriver; 2542b88c3b3cdadf6fcd367ee2bc620c0c94bbfe1bShih-wei Liao 263f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liaoclass ABCCompiler : public Compiler { 2742b88c3b3cdadf6fcd367ee2bc620c0c94bbfe1bShih-wei Liaoprivate: 2842b88c3b3cdadf6fcd367ee2bc620c0c94bbfe1bShih-wei Liao const ABCCompilerDriver &mDriver; 293f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 303f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liaopublic: 3160ca7e1fbf7d8310387de5091ec76af538ecd480Shih-wei Liao ABCCompiler(const ABCCompilerDriver &pDriver) : mDriver(pDriver) { 3260ca7e1fbf7d8310387de5091ec76af538ecd480Shih-wei Liao // Disable LTO 3360ca7e1fbf7d8310387de5091ec76af538ecd480Shih-wei Liao enableLTO(false); 3460ca7e1fbf7d8310387de5091ec76af538ecd480Shih-wei Liao } 353f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 363f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao virtual ~ABCCompiler() { } 373f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 383f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liaoprivate: 393f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao virtual bool beforeAddCodeGenPasses(Script &pScript, llvm::PassManager &pPM); 403f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao}; 413f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 423f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao} // end namespace bcc 433f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao 443f64f76a827af742d969fe0b699d42a70b069998Shih-wei Liao#endif // BCC_ABC_COMPILER_H 45