Coverage Report

Created: 2020-06-26 05:44

/home/arjun/llvm-project/build/tools/mlir/include/mlir/Interfaces/LoopLikeInterface.h.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Operation Interface Declarations                                           *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
namespace detail {
10
struct LoopLikeOpInterfaceInterfaceTraits {
11
  class Concept {
12
  public:
13
0
    virtual ~Concept() = default;
14
    virtual bool isDefinedOutsideOfLoop(Operation *tablegen_opaque_op, Value  value) = 0;
15
    virtual Region & getLoopBody(Operation *tablegen_opaque_op) = 0;
16
    virtual LogicalResult moveOutOfLoop(Operation *tablegen_opaque_op, ArrayRef<Operation *> ops) = 0;
17
  };
18
  template<typename ConcreteOp>
19
  class Model : public Concept {
20
public:
21
0
    bool isDefinedOutsideOfLoop(Operation *tablegen_opaque_op, Value  value) final {
22
0
      auto op = llvm::cast<ConcreteOp>(tablegen_opaque_op);
23
0
      (void)op;
24
0
      return op.isDefinedOutsideOfLoop(value);
25
0
    }
26
0
    Region & getLoopBody(Operation *tablegen_opaque_op) final {
27
0
      auto op = llvm::cast<ConcreteOp>(tablegen_opaque_op);
28
0
      (void)op;
29
0
      return op.getLoopBody();
30
0
    }
31
0
    LogicalResult moveOutOfLoop(Operation *tablegen_opaque_op, ArrayRef<Operation *> ops) final {
32
0
      auto op = llvm::cast<ConcreteOp>(tablegen_opaque_op);
33
0
      (void)op;
34
0
      return op.moveOutOfLoop(ops);
35
0
    }
36
  };
37
};
38
} // end namespace detail
39
class LoopLikeOpInterface : public OpInterface<LoopLikeOpInterface, detail::LoopLikeOpInterfaceInterfaceTraits> {
40
public:
41
  using OpInterface<LoopLikeOpInterface, detail::LoopLikeOpInterfaceInterfaceTraits>::OpInterface;
42
  template <typename ConcreteOp>
43
  struct LoopLikeOpInterfaceTrait : public OpInterface<LoopLikeOpInterface, detail::LoopLikeOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
44
  };
45
    template <typename ConcreteOp>
46
    struct Trait : public LoopLikeOpInterfaceTrait<ConcreteOp> {};
47
  bool isDefinedOutsideOfLoop(Value  value);
48
  Region & getLoopBody();
49
  LogicalResult moveOutOfLoop(ArrayRef<Operation *> ops);
50
};