| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright (c) 2016 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- #ifndef SOURCE_OPT_BUILD_MODULE_H_
- #define SOURCE_OPT_BUILD_MODULE_H_
- #include <memory>
- #include <string>
- #include "source/opt/ir_context.h"
- #include "source/opt/module.h"
- #include "spirv-tools/libspirv.hpp"
- namespace spvtools {
- // Builds a Module and returns the owning IRContext from the given SPIR-V
- // |binary|. |size| specifies number of words in |binary|. The |binary| will be
- // decoded according to the given target |env|. Returns nullptr if errors occur
- // and sends the errors to |consumer|. When |extra_line_tracking| is true,
- // extra OpLine instructions are injected to better presere line numbers while
- // later transforms mutate the module.
- std::unique_ptr<opt::IRContext> BuildModule(spv_target_env env,
- MessageConsumer consumer,
- const uint32_t* binary, size_t size,
- bool extra_line_tracking);
- // Like above, with extra line tracking turned on.
- std::unique_ptr<opt::IRContext> BuildModule(spv_target_env env,
- MessageConsumer consumer,
- const uint32_t* binary,
- size_t size);
- // Builds a Module and returns the owning IRContext from the given
- // SPIR-V assembly |text|. The |text| will be encoded according to the given
- // target |env|. Returns nullptr if errors occur and sends the errors to
- // |consumer|.
- std::unique_ptr<opt::IRContext> BuildModule(
- spv_target_env env, MessageConsumer consumer, const std::string& text,
- uint32_t assemble_options = SpirvTools::kDefaultAssembleOption);
- } // namespace spvtools
- #endif // SOURCE_OPT_BUILD_MODULE_H_
|