CIRCT
20.0.0git
include
circt
Dialect
Handshake
HandshakeInterfaces.h
Go to the documentation of this file.
1
//===- HandshakeInterfaces.h - Handshake op interfaces ----------*- 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
// This file defines the interfaces of the handshake dialect.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef CIRCT_DIALECT_HANDSHAKE_HANDSHAKEINTERFACES_H
14
#define CIRCT_DIALECT_HANDSHAKE_HANDSHAKEINTERFACES_H
15
16
#include "
circt/Dialect/Handshake/HandshakeDialect.h
"
17
#include "
circt/Support/LLVM.h
"
18
#include "mlir/IR/OpDefinition.h"
19
#include "mlir/IR/OpImplementation.h"
20
#include "mlir/IR/Operation.h"
21
#include "mlir/Interfaces/CallInterfaces.h"
22
#include "mlir/Interfaces/FunctionInterfaces.h"
23
#include "mlir/Interfaces/InferTypeOpInterface.h"
24
#include "mlir/Interfaces/SideEffectInterfaces.h"
25
#include "llvm/ADT/Any.h"
26
27
namespace
circt
{
28
namespace
handshake
{
29
30
struct
MemLoadInterface
{
31
unsigned
index
;
32
mlir::Value
addressIn
;
33
mlir::Value
dataOut
;
34
mlir::Value
doneOut
;
35
};
36
37
struct
MemStoreInterface
{
38
unsigned
index
;
39
mlir::Value
addressIn
;
40
mlir::Value
dataIn
;
41
mlir::Value
doneOut
;
42
};
43
44
/// Default implementation for checking whether an operation is a control
45
/// operation. This function cannot be defined within ControlInterface
46
/// because its implementation attempts to cast the operation to an
47
/// SOSTInterface, which may not be declared at the point where the default
48
/// trait's method is defined. Therefore, the default implementation of
49
/// ControlInterface's isControl method simply calls this function.
50
bool
isControlOpImpl
(Operation *op);
51
}
// end namespace handshake
52
}
// end namespace circt
53
54
#include "circt/Dialect/Handshake/HandshakeInterfaces.h.inc"
55
56
#endif
// CIRCT_DIALECT_HANDSHAKE_HANDSHAKEINTERFACES_H
HandshakeDialect.h
LLVM.h
circt::handshake::isControlOpImpl
bool isControlOpImpl(Operation *op)
Default implementation for checking whether an operation is a control operation.
Definition:
HandshakeOps.cpp:43
circt
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition:
DebugAnalysis.h:21
handshake
Definition:
handshake.py:1
circt::handshake::MemLoadInterface
Definition:
HandshakeInterfaces.h:30
circt::handshake::MemLoadInterface::index
unsigned index
Definition:
HandshakeInterfaces.h:31
circt::handshake::MemLoadInterface::addressIn
mlir::Value addressIn
Definition:
HandshakeInterfaces.h:32
circt::handshake::MemLoadInterface::dataOut
mlir::Value dataOut
Definition:
HandshakeInterfaces.h:33
circt::handshake::MemLoadInterface::doneOut
mlir::Value doneOut
Definition:
HandshakeInterfaces.h:34
circt::handshake::MemStoreInterface
Definition:
HandshakeInterfaces.h:37
circt::handshake::MemStoreInterface::doneOut
mlir::Value doneOut
Definition:
HandshakeInterfaces.h:41
circt::handshake::MemStoreInterface::dataIn
mlir::Value dataIn
Definition:
HandshakeInterfaces.h:40
circt::handshake::MemStoreInterface::addressIn
mlir::Value addressIn
Definition:
HandshakeInterfaces.h:39
circt::handshake::MemStoreInterface::index
unsigned index
Definition:
HandshakeInterfaces.h:38
Generated on Sun Dec 29 2024 00:08:15 for CIRCT by
1.9.1