Commit 24fb1deb authored by Ballabriga Clément's avatar Ballabriga Clément
Browse files

update documentation

parent 3f51ed94
......@@ -2,11 +2,48 @@
Requirements:
=============
- OTAWA version 2: http://www.otawa.fr
- Parma Polyhedra Library (PPL): http://bugseng.com/products/ppl/
- Having otawa-config in $PATH: export PATH=$PATH:/path/to/otawa/binaries/
- Having otawa lib dir in $LD_LIBRARY_PATH: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(otawa-config --libdir)
- For testing, you will need an ARM cross-compiler
a) Parma Polyhedra Library (PPL): http://bugseng.com/products/ppl/
b) Having otawa-config in $PATH: export PATH=$PATH:/path/to/otawa/binaries/
c) Having otawa lib dir in $LD_LIBRARY_PATH: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(otawa-config --libdir)
d) For testing, you will need an ARM cross-compiler
e) OTAWA 2
First, install all required dependencies. On debian/ubuntu:
sudo apt install build-essential python2 git cmake flex bison libxml2-dev libxslt-dev ocaml gcc-arm-none-eabi
To download and install OTAWA v2, first download the following script
and execute it using python 2.7:
http://www.tracesgroup.net/otawa/packages/otawa-install.py
Warning: the script is compatible with python 2.7 (NOT python 3). If
your default python installation is python3, you need to edit the first
line of otawa-install.py and replace #!/usr/bin/python by
#!/usr/bin/python2
You will also need to install the OTAWA plugins for ARM, and
lp-solve. Go to <otawa dir>/bin (where otawa dir is the directory
where you just installed otawa) and type:
python otawa-install.py otawa-arm otawa-lp_solve5
Warning: to install plugins, do not use otawa-install.py in
<otawa_dir>.
Setting up the environment:
===========================
Modify your environment variables as follows:
add <otawa dir>/bin to variable PATH
add <otawa dir>/lib to variable LD_LIBRARY_PATH
Compiling:
......
diff --git a/include/otawa/ai/EdgeStore.h b/include/otawa/ai/EdgeStore.h
index 00678a70..5b1ea8ae 100644
--- a/include/otawa/ai/EdgeStore.h
+++ b/include/otawa/ai/EdgeStore.h
@@ -44,16 +44,18 @@ public:
}
void set(vertex_t v, t s) {
- for(auto e =_graph.succs(v); e; e++)
- map.put(*e, s);
+ for(typename G::Successor e(_graph, v); e(); e++)
+ map.put(*e, s);
+
}
inline void set(edge_t e, const t& s) { map.put(e, s); }
t get(vertex_t v) const {
t s = _dom.bot();
- for(auto e =_graph.succs(v); e; e++)
- _dom.join(s, map.get(e, _dom.bot()));
+ for(typename G::Successor e(_graph, v); e(); e++)
+ _dom.join(s, map.get(e, _dom.bot()));
+
return s;
}
diff --git a/include/otawa/ai/WorkListDriver.h b/include/otawa/ai/WorkListDriver.h
index 66bee111..2df79da0 100644
--- a/include/otawa/ai/WorkListDriver.h
+++ b/include/otawa/ai/WorkListDriver.h
@@ -236,7 +236,7 @@ public:
OrderedDriver(D& dom, const G& graph, S& store, O *order)
: _dom(dom), _graph(graph), _store(store), wl_set(graph.count()), end(false), _order(order) {
store.set(_graph.entry(), dom.init());
- for(typename G::Successor succ(graph, _graph.entry()); succ; succ++)
+ for(typename G::Successor succ(graph, _graph.entry()); succ(); succ++)
push(graph.sinkOf(*succ));
next();
}
@@ -274,7 +274,7 @@ public:
* (and successors must be updated).
*/
inline void change(void) {
- for(typename G::Successor succ(_graph, cur); succ; succ++)
+ for(typename G::Successor succ(_graph, cur); succ(); succ++)
push(*succ);
}
@@ -354,7 +354,7 @@ public:
*/
inline typename D::t input(vertex_t vertex) {
typename D::t s = _dom.bot();
- for(typename G::Predecessor pred(_graph, vertex); pred; pred++) {
+ for(typename G::Predecessor pred(_graph, vertex); pred(); pred++) {
s = _dom.join(s, _store.get(*pred));
}
return s;
diff --git a/src/oslice/LivenessChecker.cpp b/src/oslice/LivenessChecker.cpp
index 04dfd02b..c0485aff 100644
--- a/src/oslice/LivenessChecker.cpp
+++ b/src/oslice/LivenessChecker.cpp
@@ -61,7 +61,7 @@ LivenessChecker::LivenessChecker(AbstractRegistration& _reg) : otawa::Processor(
void LivenessChecker::configure(const PropList &props) {
Processor::configure(props);
_debugLevel = LIVENESS_DEBUG_LEVEL(props);
- LIVENESS_DEBUG_LEVEL(workspace()) = _debugLevel;
+// LIVENESS_DEBUG_LEVEL(workspace()) = _debugLevel;
}
/**
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