1dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala/* 2dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * Copyright 2015, The Android Open Source Project 3dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * 4dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * Licensed under the Apache License, Version 2.0 (the "License"); 5dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * you may not use this file except in compliance with the License. 6dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * You may obtain a copy of the License at 7dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * 8dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * http://www.apache.org/licenses/LICENSE-2.0 9dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * 10dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * Unless required by applicable law or agreed to in writing, software 11dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * distributed under the License is distributed on an "AS IS" BASIS, 12dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * See the License for the specific language governing permissions and 14dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala * limitations under the License. 15dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala */ 16dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 17dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala#ifndef _FRAMEWORKS_COMPILE_SLANG_SLANG_BITCODE_GEN_H_ // NOLINT 18dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala#define _FRAMEWORKS_COMPILE_SLANG_SLANG_BITCODE_GEN_H_ 19dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 20dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala#include <cstdint> 21dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 22dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Walanamespace llvm { 23dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala class raw_ostream; 24dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala class Module; 25dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala} 26dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 27dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Walanamespace slang { 28dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 29dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala// Write out the LLVM bitcode for a module, encased in a wrapper 30dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala// containing RS version information. 31dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Walavoid writeBitcode(llvm::raw_ostream &Out, 32dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala const llvm::Module &M, 33dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala uint32_t TargetAPI, 34b130e157d3a5c2256e7aa0005d7134f3ac060c56Stephen McGroarty uint32_t OptimizationLevel, 35b130e157d3a5c2256e7aa0005d7134f3ac060c56Stephen McGroarty bool GenerateDebugInfo); 36dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 37dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala} // end namespace slang 38dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala 39dabd246c169fe8bc7d80a31779311bfc583b2ea0Matt Wala#endif // _FRAMEWORKS_COMPILE_SLANG_SLANG_BITCODE_GEN_H_ NOLINT 40