16749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni/*
26749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * Copyright 2016, The Android Open Source Project
36749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni *
46749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * Licensed under the Apache License, Version 2.0 (the "License");
56749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * you may not use this file except in compliance with the License.
66749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * You may obtain a copy of the License at
76749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni *
86749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni *     http://www.apache.org/licenses/LICENSE-2.0
96749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni *
106749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * Unless required by applicable law or agreed to in writing, software
116749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * distributed under the License is distributed on an "AS IS" BASIS,
126749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * See the License for the specific language governing permissions and
146749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * limitations under the License.
156749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni */
166749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
176749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#ifndef RS_SPIRV_WRITER_H
186749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#define RS_SPIRV_WRITER_H
196749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
20669e475f679d20502ff90923ad0ff2aae2558f12Yang Ni#include <string>
216749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
226749f541c20e86f5deb6fd421ed5849ef43c275cYang Ninamespace llvm {
236749f541c20e86f5deb6fd421ed5849ef43c275cYang Niclass Module;
246749f541c20e86f5deb6fd421ed5849ef43c275cYang Niclass raw_ostream;
257974fc03e11f3a8dd40f794f3b33b4889483090cRahul Chaudhry} // namespace llvm
266749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
27bbf0b0eac5b1aa65ded878d80a0adc83e48527c8I-Jui (Ray) Sungnamespace bcinfo {
28bbf0b0eac5b1aa65ded878d80a0adc83e48527c8I-Jui (Ray) Sungclass MetadataExtractor;
29bbf0b0eac5b1aa65ded878d80a0adc83e48527c8I-Jui (Ray) Sung} // namespace bcinfo
30bbf0b0eac5b1aa65ded878d80a0adc83e48527c8I-Jui (Ray) Sung
316749f541c20e86f5deb6fd421ed5849ef43c275cYang Ninamespace rs2spirv {
326749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
33bbf0b0eac5b1aa65ded878d80a0adc83e48527c8I-Jui (Ray) Sungbool WriteSPIRV(llvm::Module *M, std::unique_ptr<bcinfo::MetadataExtractor> ME,
34bbf0b0eac5b1aa65ded878d80a0adc83e48527c8I-Jui (Ray) Sung                llvm::raw_ostream &OS, std::string &ErrMsg);
356749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
366749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni} // namespace rs2spirv
376749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
386749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#endif
39