CIRCT 20.0.0git
Loading...
Searching...
No Matches
HWArithOps.h
Go to the documentation of this file.
1//===- HWArithOps.h - Declare HWArith dialect operations --------*- 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 declares the operation class for the HWArith IR.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef CIRCT_DIALECT_HWARITH_OPS_H
14#define CIRCT_DIALECT_HWARITH_OPS_H
15
17#include "circt/Support/LLVM.h"
18#include "mlir/Bytecode/BytecodeOpInterface.h"
19#include "mlir/IR/OpImplementation.h"
20#include "mlir/Interfaces/InferTypeOpInterface.h"
21#include "mlir/Interfaces/SideEffectInterfaces.h"
22
23#define GET_OP_CLASSES
24#include "circt/Dialect/HWArith/HWArith.h.inc"
25
26namespace circt {
27namespace hwarith {
28
29// Infer the bitwidth as well as the signedness that is required to store the
30// sum of two given integer types without over- or underflowing.
31unsigned inferAddResultType(IntegerType::SignednessSemantics &signedness,
32 IntegerType lhs, IntegerType rhs);
33
34} // namespace hwarith
35} // namespace circt
36
37#endif // CIRCT_DIALECT_HWARITH_OPS_H
unsigned inferAddResultType(IntegerType::SignednessSemantics &signedness, IntegerType lhs, IntegerType rhs)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.