LLVM 20.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
14namespace llvm {
15class TensorSpec;
16
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'.
21public:
23 const std::vector<TensorSpec> &Inputs);
24
25 static bool classof(const MLModelRunner *R) {
26 return R->getKind() == MLModelRunner::Kind::NoOp;
27 }
28
29private:
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
This is an important class for using LLVM in a threaded context.
Definition: LLVMContext.h:67
MLModelRunner interface: abstraction of a mechanism for evaluating a ML model.
Definition: MLModelRunner.h:26
LLVMContext & Ctx
Definition: MLModelRunner.h:72
static bool classof(const MLModelRunner *R)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18