P4C
The P4 Compiler
Loading...
Searching...
No Matches
p4tools/modules/testgen/targets/pna/target.h
1/*
2 * SPDX-FileCopyrightText: 2023 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_PNA_TARGET_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_PNA_TARGET_H_
9
10#include <cstdint>
11#include <filesystem>
12#include <optional>
13
14#include "backends/p4tools/common/lib/arch_spec.h"
15#include "ir/ir.h"
16#include "ir/solver.h"
17
18#include "backends/p4tools/modules/testgen/core/program_info.h"
19#include "backends/p4tools/modules/testgen/core/symbolic_executor/symbolic_executor.h"
20#include "backends/p4tools/modules/testgen/core/target.h"
21#include "backends/p4tools/modules/testgen/lib/execution_state.h"
22#include "backends/p4tools/modules/testgen/targets/pna/dpdk/cmd_stepper.h"
23#include "backends/p4tools/modules/testgen/targets/pna/dpdk/expr_stepper.h"
24#include "backends/p4tools/modules/testgen/targets/pna/dpdk/program_info.h"
25#include "backends/p4tools/modules/testgen/targets/pna/test_backend.h"
26
28
29class PnaDpdkTestgenTarget : public TestgenTarget {
30 public:
32 static void make();
33
34 protected:
36 const CompilerResult &compilerResult,
37 const IR::Declaration_Instance *mainDecl) const override;
38
40 const TestBackendConfiguration &testBackendConfiguration,
41 SymbolicExecutor &symbex) const override;
42
44 const ProgramInfo &programInfo) const override;
45
47 const ProgramInfo &programInfo) const override;
48
49 private:
50 PnaDpdkTestgenTarget();
51
52 [[nodiscard]] MidEnd mkMidEnd(const CompilerOptions &options) const override;
53};
54
55} // namespace P4::P4Tools::P4Testgen::Pna
56
57#endif /* BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_PNA_TARGET_H_ */
Provides a higher-level interface for an SMT solver.
Definition solver.h:30
Definition frontends/common/options.h:31
Definition common/compiler/compiler_result.h:20
Definition p4tools/common/compiler/midend.h:30
Represents state of execution after having reached a program point.
Definition execution_state.h:40
Definition targets/pna/dpdk/cmd_stepper.h:25
Definition targets/pna/dpdk/expr_stepper.h:21
Definition targets/pna/dpdk/program_info.h:22
const PnaDpdkProgramInfo * produceProgramInfoImpl(const CompilerResult &compilerResult, const IR::Declaration_Instance *mainDecl) const override
Definition p4tools/modules/testgen/targets/pna/target.cpp:42
PnaDpdkCmdStepper * getCmdStepperImpl(ExecutionState &state, AbstractSolver &solver, const ProgramInfo &programInfo) const override
Definition p4tools/modules/testgen/targets/pna/target.cpp:84
static void make()
Registers this target.
Definition p4tools/modules/testgen/targets/pna/target.cpp:35
PnaTestBackend * getTestBackendImpl(const ProgramInfo &programInfo, const TestBackendConfiguration &testBackendConfiguration, SymbolicExecutor &symbex) const override
Definition p4tools/modules/testgen/targets/pna/target.cpp:78
PnaDpdkExprStepper * getExprStepperImpl(ExecutionState &state, AbstractSolver &solver, const ProgramInfo &programInfo) const override
Definition p4tools/modules/testgen/targets/pna/target.cpp:90
Definition targets/pna/test_backend.h:31
Stores target-specific information about a P4 program.
Definition core/program_info.h:27
Definition symbolic_executor.h:27
Inja.
Definition pna/backend/metadata/metadata.cpp:28
Definition phv/solver/action_constraint_solver.cpp:33
Definition test_backend_configuration.h:22