Adaptyst
A comprehensive and architecture-agnostic performance analysis tool
Loading...
Searching...
No Matches
ir.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 CERN
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#ifndef IR_HPP_
5#define IR_HPP_
6
7#include <filesystem>
8#include "adaptyst/hw.h"
9#include "adaptyst/output.hpp"
10#include "adaptyst/process.hpp"
11
12namespace adaptyst {
13 class IR {
14 private:
15 unsigned int type;
16 bool compiled;
17
18 protected:
19 virtual void *get_c_data() = 0;
20 virtual void _compile() = 0;
21 virtual int _execute() = 0;
22
23 public:
24 IR(unsigned int type);
25 ir to_c_type();
26 void compile();
27 std::unique_ptr<Process> execute();
28 };
29
30 class MLIR : public IR {
31 private:
32 std::unique_ptr<Path> output_dir;
33
34 protected:
35 void *get_c_data();
36 void _compile();
37 int _execute();
38
39 public:
40 MLIR(fs::path output_dir);
41 };
42
43 class SingleCmd : public IR {
44 private:
45 std::vector<char **> cmd_copies;
46 std::vector<int> element_sizes;
47
48 protected:
49 void *get_c_data();
50 void _compile();
51 int _execute();
52
53 public:
54 SingleCmd(std::vector<std::string> elements);
55 ~SingleCmd();
56 };
57};
58
59#endif
IR(unsigned int type)
Definition ir.cpp:7
virtual void _compile()=0
virtual void * get_c_data()=0
virtual int _execute()=0
std::unique_ptr< Process > execute()
Definition ir.cpp:21
ir to_c_type()
Definition ir.cpp:12
void compile()
Definition ir.cpp:16
int _execute()
Definition ir.cpp:43
void * get_c_data()
Definition ir.cpp:35
MLIR(fs::path output_dir)
Definition ir.cpp:31
void _compile()
Definition ir.cpp:39
void * get_c_data()
Definition ir.cpp:75
~SingleCmd()
Definition ir.cpp:65
int _execute()
Definition ir.cpp:91
void _compile()
Definition ir.cpp:89
SingleCmd(std::vector< std::string > elements)
Definition ir.cpp:50
Definition archive.cpp:7
Definition hw.h:97