1ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang/*
2ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * Copyright 2012, The Android Open Source Project
3ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang *
4ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * Licensed under the Apache License, Version 2.0 (the "License");
5ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * you may not use this file except in compliance with the License.
6ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * You may obtain a copy of the License at
7ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang *
8ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang *     http://www.apache.org/licenses/LICENSE-2.0
9ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang *
10ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * Unless required by applicable law or agreed to in writing, software
11ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * distributed under the License is distributed on an "AS IS" BASIS,
12ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * See the License for the specific language governing permissions and
14ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang * limitations under the License.
15ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang */
16ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang
17c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#ifndef BCC_RS_COMPILER_H
18c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#define BCC_RS_COMPILER_H
19ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang
20c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#include "bcc/Compiler.h"
21ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang
22ade92778b99382413ff9c556c724dd3f447e5dfbZonr Changnamespace bcc {
23ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang
24ade92778b99382413ff9c556c724dd3f447e5dfbZonr Changclass RSCompiler : public Compiler {
25ade92778b99382413ff9c556c724dd3f447e5dfbZonr Changprivate:
26ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang  virtual bool beforeAddLTOPasses(Script &pScript, llvm::PassManager &pPM);
276a5fa14074200a18824defa0bffc64e5f2487152Tobias Grosser  bool addInternalizeSymbolsPass(Script &pScript, llvm::PassManager &pPM);
286a5fa14074200a18824defa0bffc64e5f2487152Tobias Grosser  bool addExpandForEachPass(Script &pScript, llvm::PassManager &pPM);
29ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang};
30ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang
31ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang} // end namespace bcc
32ade92778b99382413ff9c556c724dd3f447e5dfbZonr Chang
33c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#endif // BCC_RS_COMPILER_H
34