[GIT] ppl/ppl(master): Changed the way of accessing the underlying expression in classes

Module: ppl/ppl Branch: master Commit: 9e4c9c57ae8ffca73bb9ee6c75a43d6ed6cd4096 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=9e4c9c57ae8ff...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Tue Aug 14 11:35:55 2012 +0200
Changed the way of accessing the underlying expression in classes Constraint, Generator, Congruence and Grid_Generator.
The public methods expression() systematically returns (a const reference to) an expression adapter derived from template Expression_Adapter (including Expression_Hide_Inhomo and Expression_Hide_Last). These adapters provide a *read-only* interface enabling most (but not all) of the operations that can be performed on a Linear_Expression.
Added four templatic constructors to Linear_Expression accepting any such adapter. Removed a dozen specific constructors that were tailored to the four classes Constraint, Generator, Congruence and Grid_Generator. As a consequence previous code such as Linear_Expression expr(gen); will no longer compile and should be replaced by Linear_Expression expr(gen.expression());
The systematic use of the new adapters, besides removing some indirections, also decreases the memory overhead of classes Constraint, Generator and Grid_Generator, as we no longer need members `wrapped_expr' and `semi_wrapped_expr'.
While at it, corrected a few latent bugs in adapter Expression_Hide_Inhomo (these could not manifest as real failures because currently the Hide_Inhomo adapter is always re-wrapped using the Expression_Hide_Last adapter).
---
interfaces/C/ppl_c_implementation_common.cc | 6 +- src/BD_Shape.templates.hh | 20 ++- src/Box.templates.hh | 6 +- src/C_Polyhedron.cc | 7 +- src/Congruence.defs.hh | 12 +- src/Congruence.inlines.hh | 14 ++- src/Constraint.cc | 11 +- src/Constraint.defs.hh | 12 +- src/Constraint.inlines.hh | 34 ++-- src/Expression_Adapter.defs.hh | 200 ++++++++++++++++++++ src/Expression_Adapter.inlines.hh | 229 +++++++++++++++++++++++ src/Expression_Adapter.types.hh | 22 +++ src/Expression_Hide_Inhomo.defs.hh | 99 ++-------- src/Expression_Hide_Inhomo.inlines.hh | 262 +++++++------------------- src/Expression_Hide_Inhomo.types.hh | 2 +- src/Expression_Hide_Last.defs.hh | 80 ++------ src/Expression_Hide_Last.inlines.hh | 261 ++++++++++----------------- src/Expression_Hide_Last.types.hh | 2 +- src/Generator.cc | 4 +- src/Generator.defs.hh | 19 +- src/Generator.inlines.hh | 42 ++--- src/Grid_Generator.defs.hh | 14 +- src/Grid_Generator.inlines.hh | 32 ++-- src/Grid_nonpublic.cc | 6 +- src/Grid_public.cc | 6 +- src/Grid_widenings.cc | 7 +- src/Linear_Expression.cc | 95 ---------- src/Linear_Expression.defs.hh | 241 +++++-------------------- src/Linear_Expression.inlines.hh | 130 ++++---------- src/Linear_Expression_Impl.defs.hh | 14 +-- src/Linear_Expression_Impl.templates.hh | 15 +- src/Makefile.am | 3 + src/Octagonal_Shape.templates.hh | 10 +- src/Partially_Reduced_Product.templates.hh | 20 +- src/Pointset_Powerset.cc | 2 +- src/Pointset_Powerset.templates.hh | 4 +- src/Polyhedron_nonpublic.cc | 7 +- src/Polyhedron_public.cc | 24 ++-- src/Polyhedron_widenings.cc | 2 +- src/Scalar_Products.cc | 14 +- src/termination.cc | 16 +- tests/Grid/congruence1.cc | 34 ++-- tests/Grid/generator1.cc | 47 +++--- tests/Grid/partition1.cc | 2 +- tests/Polyhedron/bhrz03widening3.cc | 22 ++- tests/Polyhedron/disjoint1.cc | 2 +- tests/Polyhedron/disjoint2.cc | 2 +- 47 files changed, 993 insertions(+), 1122 deletions(-)
Diff: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commitdiff;h=9e4c9c57a...
participants (1)
-
Enea Zaffanella