diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2009-11-25 05:13:03 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2009-11-25 05:13:03 +0000 |
commit | 3ecbce7e02d83a2c45bd87626ad5175f51fb27cb (patch) | |
tree | 829f294377a9496d7c482aab29c1e6b038768c63 /gcc/graphite-ppl.c | |
parent | 04863400c4648cb3b7e646c39197f1680a39d26b (diff) | |
download | gcc-3ecbce7e02d83a2c45bd87626ad5175f51fb27cb.zip gcc-3ecbce7e02d83a2c45bd87626ad5175f51fb27cb.tar.gz gcc-3ecbce7e02d83a2c45bd87626ad5175f51fb27cb.tar.bz2 |
graphite-ppl.c (ppl_min_for_le_polyhedron): New.
2009-10-17 Sebastian Pop <sebastian.pop@amd.com>
* graphite-ppl.c (ppl_min_for_le_polyhedron): New.
* graphite-ppl.h (graphite-ppl.h): Declared.
From-SVN: r154600
Diffstat (limited to 'gcc/graphite-ppl.c')
-rw-r--r-- | gcc/graphite-ppl.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/graphite-ppl.c b/gcc/graphite-ppl.c index 241171c..b47e24a 100644 --- a/gcc/graphite-ppl.c +++ b/gcc/graphite-ppl.c @@ -669,4 +669,36 @@ ppl_max_for_le_pointset (ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_delete_Coefficient (denom); } +/* Return in RES the maximum of the linear expression LE on the + polyhedron POL. */ + +void +ppl_min_for_le_polyhedron (ppl_Polyhedron_t pol, + ppl_Linear_Expression_t le, Value res) +{ + ppl_Coefficient_t num, denom; + Value dv, nv; + int maximum, err; + + value_init (nv); + value_init (dv); + ppl_new_Coefficient (&num); + ppl_new_Coefficient (&denom); + err = ppl_Polyhedron_minimize (pol, le, num, denom, &maximum); + + if (err > 0) + { + ppl_Coefficient_to_mpz_t (num, nv); + ppl_Coefficient_to_mpz_t (denom, dv); + gcc_assert (value_notzero_p (dv)); + value_division (res, nv, dv); + } + + value_clear (nv); + value_clear (dv); + ppl_delete_Coefficient (num); + ppl_delete_Coefficient (denom); +} + + #endif |