1db169187dea4602e4ad32058762d23d474753fd0Stephen Hines/*
2db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * Copyright 2012, The Android Open Source Project
3db169187dea4602e4ad32058762d23d474753fd0Stephen Hines *
4db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License");
5db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * you may not use this file except in compliance with the License.
6db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * You may obtain a copy of the License at
7db169187dea4602e4ad32058762d23d474753fd0Stephen Hines *
8db169187dea4602e4ad32058762d23d474753fd0Stephen Hines *     http://www.apache.org/licenses/LICENSE-2.0
9db169187dea4602e4ad32058762d23d474753fd0Stephen Hines *
10db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * Unless required by applicable law or agreed to in writing, software
11db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS,
12db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * See the License for the specific language governing permissions and
14db169187dea4602e4ad32058762d23d474753fd0Stephen Hines * limitations under the License.
15db169187dea4602e4ad32058762d23d474753fd0Stephen Hines */
16db169187dea4602e4ad32058762d23d474753fd0Stephen Hines
17c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#ifndef BCC_RS_TRANSFORMS_H
18c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#define BCC_RS_TRANSFORMS_H
197a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liao
207a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liaonamespace llvm {
217a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liao  class ModulePass;
22b7bce7436876884dfd78ec41d147ddbe47e37cbdTim Murray  class FunctionPass;
237a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liao}
24db169187dea4602e4ad32058762d23d474753fd0Stephen Hines
25db169187dea4602e4ad32058762d23d474753fd0Stephen Hinesnamespace bcc {
26db169187dea4602e4ad32058762d23d474753fd0Stephen Hines
274165d29822fc7caf81e435995ff6189608fc0323Dean De Leoextern const char BCC_INDEX_VAR_NAME[];
284165d29822fc7caf81e435995ff6189608fc0323Dean De Leo
297a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liaollvm::ModulePass *
304e7a50685ae18a24087f6f2a51c604e71fab69e2Matt WalacreateRSKernelExpandPass(bool pEnableStepOpt);
317a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liao
32b7bce7436876884dfd78ec41d147ddbe47e37cbdTim Murrayllvm::FunctionPass *
331d93a190e62ec1588b4724ca8759216b2d0b76d7David GrosscreateRSInvariantPass();
341d93a190e62ec1588b4724ca8759216b2d0b76d7David Gross
351d93a190e62ec1588b4724ca8759216b2d0b76d7David Grossllvm::FunctionPass *
36b7bce7436876884dfd78ec41d147ddbe47e37cbdTim MurraycreateRSInvokeHelperPass();
37b7bce7436876884dfd78ec41d147ddbe47e37cbdTim Murray
381253c195dd7911ad91bd66790f03e4c2f8888ad2Stephen Hinesllvm::ModulePass * createRSEmbedInfoPass();
3986a0b797c221d4c3373dc10c8229b75b6747f6e7Stephen Hines
40750ee65e129a2baef2dc5bb9ad210b45c9184926Stephen Hinesllvm::ModulePass * createRSGlobalInfoPass(bool pSkipConstants);
41750ee65e129a2baef2dc5bb9ad210b45c9184926Stephen Hines
429fe081b8bae8a95d903f8fa8dc0a7590ae706606Pirama Arumuga Nainarllvm::ModulePass * createRSScreenFunctionsPass();
431e0557ae75ae780352845bd2ba0f4babdc5ae4e6Pirama Arumuga Nainar
449fe081b8bae8a95d903f8fa8dc0a7590ae706606Pirama Arumuga Nainarllvm::ModulePass * createRSIsThreadablePass();
451e0557ae75ae780352845bd2ba0f4babdc5ae4e6Pirama Arumuga Nainar
468c24f8d1d75b619130e8bfce204ed9695362d4a1Pirama Arumuga Nainarllvm::ModulePass * createRSX86_64CallConvPass();
478c24f8d1d75b619130e8bfce204ed9695362d4a1Pirama Arumuga Nainar
4809c7a41f73602bec33e9d392cc959d78931f73c4Dean De Leollvm::ModulePass * createRSAddDebugInfoPass();
4909c7a41f73602bec33e9d392cc959d78931f73c4Dean De Leo
50d2d5ee3893220cec256c829a4740a718232f84acPirama Arumuga Nainarllvm::FunctionPass *createRSX86TranslateGEPPass();
51d2d5ee3893220cec256c829a4740a718232f84acPirama Arumuga Nainar
527a66e6cbb1ae32cd56b19822c4e66560deb857dbShih-wei Liao} // end namespace bcc
53db169187dea4602e4ad32058762d23d474753fd0Stephen Hines
54c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#endif // BCC_RS_TRANSFORMS_H
55