TVM  0.9.4
graphDetails.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/graph/CallGraph.h>
7 
8 #include <memory>
9 
10 namespace tvm
11 {
12 
13 namespace utils
14 {
15 
16 namespace internal
17 {
21 template<typename Object, typename Output, typename... Args>
22 inline void parseSourcesAndOutputs(graph::CallGraph * g,
23  std::shared_ptr<graph::internal::Inputs> user,
24  std::shared_ptr<Object> obj,
25  Output output,
26  Args &&... args);
27 
31 template<typename Object1, typename Object2, typename... Args>
32 inline void parseSourcesAndOutputs(graph::CallGraph * g,
33  std::shared_ptr<graph::internal::Inputs> user,
34  std::shared_ptr<Object1> obj1,
35  std::shared_ptr<Object2> obj2,
36  Args &&... args);
37 
41 template<typename Object>
42 inline void parseSourcesAndOutputs(graph::CallGraph * g,
43  std::shared_ptr<graph::internal::Inputs> user,
44  std::shared_ptr<Object> obj);
45 
46 template<typename Object, typename Output, typename... Args>
48  std::shared_ptr<graph::internal::Inputs> user,
49  std::shared_ptr<Object> obj,
50  Output output,
51  Args &&... args)
52 {
53  user->addInput(obj, output);
54  parseSourcesAndOutputs(g, user, obj, std::forward<Args>(args)...);
55 }
56 
60 template<typename Object1, typename Object2, typename... Args>
62  std::shared_ptr<graph::internal::Inputs> user,
63  std::shared_ptr<Object1>,
64  std::shared_ptr<Object2> obj2,
65  Args &&... args)
66 {
67  g->add(user);
68  auto newUser = std::make_shared<graph::internal::Inputs>();
69  parseSourcesAndOutputs(g, newUser, obj2, std::forward<Args>(args)...);
70 }
71 
75 template<typename Object>
77  std::shared_ptr<graph::internal::Inputs> user,
78  std::shared_ptr<Object>)
79 { g->add(user); }
80 
81 } // namespace internal
82 
83 } // namespace utils
84 
85 } // namespace tvm
Definition: CallGraph.h:23
void add(std::shared_ptr< internal::Inputs > inputs)
void parseSourcesAndOutputs(graph::CallGraph *g, std::shared_ptr< graph::internal::Inputs > user, std::shared_ptr< Object > obj, Output output, Args &&... args)
Definition: graphDetails.h:47
Definition: Clock.h:12