Vous avez reçu un message "Your GitLab account has been locked ..." ? Pas d'inquiétude : lisez cet article https://docs.gricad-pages.univ-grenoble-alpes.fr/help/unlock/

Commit e3b87b2a authored by Valentin Touzeau's avatar Valentin Touzeau Committed by EXT Valentin Touzeau
Browse files

WIP

parent 415a43ed
......@@ -18,9 +18,10 @@ public:
using Block = otawa::icat3::LBlock;
using ManagerPtr = std::shared_ptr<ZDDManager>;
enum class Init {Top, Bot};
ZDDAbstractValue(Init init = Init::Bot);
// Build bottom
ZDDAbstractValue();
// Build top
ZDDAbstractValue(const otawa::icat3::LBlock* focus, const otawa::icat3::LBlockCollection& coll, int set);
void join(const ZDDAbstractValue& other);
void update(ManagerPtr manager, const Block* block, int k, const Block* focus);
bool operator==(const ZDDAbstractValue& other) const;
......@@ -33,10 +34,19 @@ protected:
};
template <typename AbstractValuePolicy>
ZDDAbstractValue<AbstractValuePolicy>::ZDDAbstractValue(Init init) :
ZDDAbstractValue<AbstractValuePolicy>::ZDDAbstractValue() :
AbstractValuePolicy(),
_isBottom(true),
_isTop(false),
_zdd()
{
}
template <typename AbstractValuePolicy>
ZDDAbstractValue<AbstractValuePolicy>::ZDDAbstractValue(const otawa::icat3::LBlock*, const otawa::icat3::LBlockCollection&, int) :
AbstractValuePolicy(),
_isBottom(init == Init::Bot),
_isTop(init == Init::Top),
_isBottom(false),
_isTop(true),
_zdd()
{
}
......
......@@ -25,13 +25,13 @@ public:
const otawa::icat3::LBlockCollection&,
int)
{
return AbstractValue(AbstractValue::Init::Bot);
return AbstractValue();
}
AbstractValue createTop(const otawa::icat3::LBlock*,
const otawa::icat3::LBlockCollection&,
int)
AbstractValue createTop(const otawa::icat3::LBlock* focus,
const otawa::icat3::LBlockCollection& coll,
int set)
{
return AbstractValue(AbstractValue::Init::Top);
return AbstractValue(focus, coll, set);
}
ManagerPtr getManager() const
......
......@@ -25,13 +25,13 @@ public:
const otawa::icat3::LBlockCollection&,
int)
{
return AbstractValue(AbstractValue::Init::Bot);
return AbstractValue();
}
AbstractValue createTop(const otawa::icat3::LBlock*,
const otawa::icat3::LBlockCollection&,
int)
AbstractValue createTop(const otawa::icat3::LBlock* focus,
const otawa::icat3::LBlockCollection& coll,
int set)
{
return AbstractValue(AbstractValue::Init::Top);
return AbstractValue(focus, coll, set);
}
ManagerPtr getManager() const
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment