LLVM  15.0.0git
NoInferenceModelRunner.h
Go to the documentation of this file.
1 //===- NoInferenceModelRunner.h ---- noop ML model runner ------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 
10 #ifndef LLVM_ANALYSIS_NOINFERENCEMODELRUNNER_H
11 #define LLVM_ANALYSIS_NOINFERENCEMODELRUNNER_H
12 
15 #include "llvm/Config/llvm-config.h"
16 namespace llvm {
17 /// A pseudo model runner. We use it to store feature values when collecting
18 /// logs for the default policy, in 'development' mode, but never ask it to
19 /// 'run'.
21 public:
23  const std::vector<TensorSpec> &Inputs);
24 
25  static bool classof(const MLModelRunner *R) {
26  return R->getKind() == MLModelRunner::Kind::NoOp;
27  }
28 
29 private:
30  void *evaluateUntyped() override {
31  llvm_unreachable("We shouldn't call run on this model runner.");
32  }
33 };
34 } // namespace llvm
35 #endif // LLVM_ANALYSIS_NOINFERENCEMODELRUNNER_H
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::MLModelRunner::Kind::NoOp
@ NoOp
MLModelRunner.h
TensorSpec.h
llvm::NoInferenceModelRunner
A pseudo model runner.
Definition: NoInferenceModelRunner.h:20
llvm::LLVMContext
This is an important class for using LLVM in a threaded context.
Definition: LLVMContext.h:68
llvm::MLModelRunner::Ctx
LLVMContext & Ctx
Definition: MLModelRunner.h:69
llvm_unreachable
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Definition: ErrorHandling.h:143
llvm::NoInferenceModelRunner::classof
static bool classof(const MLModelRunner *R)
Definition: NoInferenceModelRunner.h:25
llvm::NoInferenceModelRunner::NoInferenceModelRunner
NoInferenceModelRunner(LLVMContext &Ctx, const std::vector< TensorSpec > &Inputs)
Definition: NoInferenceModelRunner.cpp:17
llvm::MLModelRunner
MLModelRunner interface: abstraction of a mechanism for evaluating a tensorflow "saved model".
Definition: MLModelRunner.h:24