4#include <initializer_list>
7#include "lib/source_file.h"
20class BaseListExpression;
24class StructExpression;
40const Type_Bits *getBitTypeToFit(
int value);
48const IR::Constant *getMaxValueConstant(
const Type *t,
const Util::SourceInfo &srcInfo = {});
67const IR::Expression *getDefaultValue(
const Type *type,
const Util::SourceInfo &srcInfo = {},
68 bool valueRequired =
false);
72const IR::Constant *convertBoolLiteral(
const IR::BoolLiteral *lit);
78std::vector<const Expression *> flattenStructExpression(
const StructExpression *structExpr);
82std::vector<const Expression *> flattenListExpression(
const BaseListExpression *listExpr);
87std::vector<const Expression *> flattenListOrStructExpression(
const Expression *listLikeExpr);
94big_int getBigIntFromLiteral(
const Literal *);
97int getIntFromLiteral(
const Literal *);
102big_int getMaxBvVal(
const Type *t);
105big_int getMaxBvVal(
int bitWidth);
109big_int getMinBvVal(
const Type *t);
128const IR::Node *inlineBlock(
const Transform &, std::initializer_list<const IR::StatOrDecl *>);
129const IR::Node *inlineBlock(
const Transform &,
const IR::IndexedVector<IR::StatOrDecl> &);
130const IR::Node *inlineBlock(
const Transform &, IR::IndexedVector<IR::StatOrDecl> &&);
Definition indexed_vector.h:40
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24