• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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