CIRCT
20.0.0git
lib
Dialect
ESI
runtime
cpp
include
esi
Manifest.h
Go to the documentation of this file.
1
//===- Manifest.h - Metadata on the accelerator -----------------*- 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
// Manifest parsing and API creation.
10
//
11
// DO NOT EDIT!
12
// This file is distributed as part of an ESI package. The source for this file
13
// should always be modified within CIRCT.
14
//
15
//===----------------------------------------------------------------------===//
16
17
// NOLINTNEXTLINE(llvm-header-guard)
18
#ifndef ESI_MANIFEST_H
19
#define ESI_MANIFEST_H
20
21
#include "
esi/Common.h
"
22
#include "
esi/Context.h
"
23
#include "
esi/Types.h
"
24
25
#include <any>
26
#include <memory>
27
#include <optional>
28
#include <string>
29
#include <vector>
30
31
namespace
esi
{
32
33
// Forward declarations.
34
class
AcceleratorConnection;
35
class
Accelerator;
36
37
/// Class to parse a manifest. It also constructs the dynamic API for the
38
/// accelerator.
39
class
Manifest
{
40
public
:
41
class
Impl
;
42
43
Manifest
(
const
Manifest
&) =
delete
;
44
Manifest
(
Context
&
ctxt
,
const
std::string &jsonManifest);
45
~Manifest
();
46
47
uint32_t
getApiVersion
()
const
;
48
// Modules which have designer specified metadata.
49
std::vector<ModuleInfo>
getModuleInfos
()
const
;
50
51
// Build a dynamic design hierarchy from the manifest. The
52
// AcceleratorConnection owns the returned pointer so its lifetime is
53
// determined by the connection.
54
Accelerator
*
buildAccelerator
(
AcceleratorConnection
&acc)
const
;
55
56
/// The Type Table is an ordered list of types. The offset can be used to
57
/// compactly and uniquely within a design. It does not include all of the
58
/// types in a design -- just the ones listed in the 'types' section of the
59
/// manifest.
60
const
std::vector<const Type *> &
getTypeTable
()
const
;
61
62
private
:
63
Impl
*
impl
;
64
};
65
66
}
// namespace esi
67
68
std::ostream &
operator<<
(std::ostream &os,
const
esi::AppID
&
id
);
69
std::ostream &
operator<<
(std::ostream &,
const
esi::AppIDPath
&);
70
std::ostream &
operator<<
(std::ostream &,
const
esi::ModuleInfo
&);
71
72
#endif
// ESI_MANIFEST_H
Common.h
Context.h
operator<<
std::ostream & operator<<(std::ostream &os, const esi::AppID &id)
Types.h
esi::AcceleratorConnection
Abstract class representing a connection to an accelerator.
Definition:
Accelerator.h:78
esi::Accelerator
Top level accelerator class.
Definition:
Accelerator.h:59
esi::AppIDPath
Definition:
Common.h:48
esi::Context
AcceleratorConnections, Accelerators, and Manifests must all share a context.
Definition:
Context.h:31
esi::Manifest
Class to parse a manifest.
Definition:
Manifest.h:39
esi::Manifest::~Manifest
~Manifest()
esi::Manifest::getTypeTable
const std::vector< const Type * > & getTypeTable() const
The Type Table is an ordered list of types.
esi::Manifest::getApiVersion
uint32_t getApiVersion() const
esi::Manifest::Manifest
Manifest(Context &ctxt, const std::string &jsonManifest)
esi::Manifest::Manifest
Manifest(const Manifest &)=delete
esi::Manifest::getModuleInfos
std::vector< ModuleInfo > getModuleInfos() const
esi::Manifest::buildAccelerator
Accelerator * buildAccelerator(AcceleratorConnection &acc) const
esi::Manifest::impl
Impl * impl
Definition:
Manifest.h:63
esi::cosim::RpcServer::Impl
Definition:
RpcServer.cpp:50
esi
Definition:
esi.py:1
esiaccel.accelerator.ctxt
ctxt
Definition:
accelerator.py:19
esi::AppID
Definition:
Common.h:34
esi::ModuleInfo
Definition:
Common.h:62
Generated on Wed Dec 4 2024 00:07:55 for CIRCT by
1.9.1