1 // Copyright (c) 2017 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #ifndef TEST_OPT_FUNCTION_UTILS_H_
16 #define TEST_OPT_FUNCTION_UTILS_H_
17
18 #include "source/opt/function.h"
19 #include "source/opt/module.h"
20
21 namespace spvtest {
22
GetFunction(spvtools::opt::Module * module,uint32_t id)23 inline spvtools::opt::Function* GetFunction(spvtools::opt::Module* module,
24 uint32_t id) {
25 for (spvtools::opt::Function& f : *module) {
26 if (f.result_id() == id) {
27 return &f;
28 }
29 }
30 return nullptr;
31 }
32
GetFunction(const spvtools::opt::Module * module,uint32_t id)33 inline const spvtools::opt::Function* GetFunction(
34 const spvtools::opt::Module* module, uint32_t id) {
35 for (const spvtools::opt::Function& f : *module) {
36 if (f.result_id() == id) {
37 return &f;
38 }
39 }
40 return nullptr;
41 }
42
GetBasicBlock(const spvtools::opt::Function * fn,uint32_t id)43 inline const spvtools::opt::BasicBlock* GetBasicBlock(
44 const spvtools::opt::Function* fn, uint32_t id) {
45 for (const spvtools::opt::BasicBlock& bb : *fn) {
46 if (bb.id() == id) {
47 return &bb;
48 }
49 }
50 return nullptr;
51 }
52
53 } // namespace spvtest
54
55 #endif // TEST_OPT_FUNCTION_UTILS_H_
56