4 #ifndef ILANG_TARGET_ITSY_ABST_TO_ILA_H__
5 #define ILANG_TARGET_ITSY_ABST_TO_ILA_H__
12 #include <ilasynth/abstraction.hpp>
58 std::map<const ilasynth::Node*, ExprPtr> node_expr_map_;
60 std::map<const ilasynth::Node*, FuncPtr> node_func_map_;
65 std::map<ExprPtr, ExprPtr> decom_match_;
74 node_expr_map_.clear();
75 node_func_map_.clear();
84 void PortInputs(
const ilasynth::Abstraction& abs,
const InstrLvlAbsPtr& ila);
86 void PortStates(
const ilasynth::Abstraction& abs,
const InstrLvlAbsPtr& ila);
88 void PortValid(
const ilasynth::Abstraction& abs,
const InstrLvlAbsPtr& ila);
90 void PortFetch(
const ilasynth::Abstraction& abs,
const InstrLvlAbsPtr& ila);
92 void PortInits(
const ilasynth::Abstraction& abs,
const InstrLvlAbsPtr& ila);
94 void PortFuncs(
const ilasynth::Abstraction& abs,
const InstrLvlAbsPtr& ila);
96 void PortInstructions(
const ilasynth::Abstraction& abs,
101 void DecomposeExpr(
const ExprPtr& src);
104 void CnvtNodeToExpr(
const ilasynth::Node* n);
106 void CnvtNodeToExprConst(
const ilasynth::Node* n);
108 void CnvtNodeToExprBoolOp(
const ilasynth::Node* n);
110 void CnvtNodeToExprBvOp(
const ilasynth::Node* n);
112 void CnvtNodeToExprMemOp(
const ilasynth::Node* n);
121 #endif // ILANG_TARGET_ITSY_ABST_TO_ILA_H__
void Port(const ilasynth::Abstraction &abs, const InstrLvlAbsPtr &ila)
Convert an abstraction from the synthesis engine on top of an ILA.
SynthAbsConverter()
Default constructor.
SynthAbsConverter::SynthAbsConverterPtr SynthAbsConverterPtr
Pointer type for normal use of SynthAbsConverter.
Definition: abst_to_ila.h:117
Expr::ExprPtr ExprPtr
Pointer type for normal use of Expr.
Definition: expr.h:138
~SynthAbsConverter()
Default destructor.
std::unordered_set< ExprPtr, ExprHash > ExprSet
Type for storing a set of Expr.
Definition: expr.h:153
std::shared_ptr< SynthAbsConverter > SynthAbsConverterPtr
Pointer type for normal use of SynAbsConverter.
Definition: abst_to_ila.h:22
InstrLvlAbs::InstrLvlAbsPtr InstrLvlAbsPtr
Pointer type for normal use of InstrLvlAbs.
Definition: instr_lvl_abs.h:326
ExprPtr ConvertSynthNodeToIlangExpr(const ilasynth::nptr_t &node, const InstrLvlAbsPtr &ila)
Convert a node from the synthesis engine to an expression in ILA.
The class for converting an abstraction from the synthesis engine to an ILA model.
Definition: abst_to_ila.h:19
static SynthAbsConverterPtr New()
Create a new SynthAbsConverter. Used for hiding implementation specific type details.
InstrLvlAbsPtr Convert(const ilasynth::Abstraction &abs)
Convert an abstraction from the synthesis engine to an ILA model.