mirror of
https://github.com/gentoo-mirror/guru.git
synced 2025-04-20 23:46:14 -04:00
143 lines
4.5 KiB
Diff
143 lines
4.5 KiB
Diff
--- a/petit/include/petit/Zima.h
|
|
+++ b/petit/include/petit/Zima.h
|
|
@@ -67,13 +67,13 @@ public:
|
|
// If already_done != NULL, stop adding constraints when we get there
|
|
|
|
friend void access_in_bounds(F_And *N, const AccessIteration &AI,
|
|
- context_iterator already_done = 0,
|
|
- bool assertions = true);
|
|
+ context_iterator already_done,
|
|
+ bool assertions);
|
|
|
|
friend void context_in_bounds(F_And *N, const AccessIteration &AI,
|
|
context_iterator c,
|
|
- context_iterator already_done = 0,
|
|
- bool assertions = true);
|
|
+ context_iterator already_done,
|
|
+ bool assertions);
|
|
|
|
//
|
|
// For A[I] and B[J] to access the same memory location,
|
|
@@ -86,7 +86,7 @@ public:
|
|
//
|
|
friend void access_same_memory(F_And *N, const AccessIteration &AI,
|
|
const AccessIteration &BJ);
|
|
-
|
|
+
|
|
friend void subscripts_equal_to_tuple (F_And *N, const AccessIteration &AI,
|
|
const Variable_ID_Tuple *t);
|
|
|
|
--- a/petit/src/add-assert.c
|
|
+++ b/petit/src/add-assert.c
|
|
@@ -110,11 +110,11 @@ build_zap_problem(dd_current dd, Relation *r)
|
|
|
|
context_iterator c = cont_i_for_access(src.access());
|
|
while (!cont_i_done(c) && !cont_i_cur_is_loop(c)) cont_i_next(c);
|
|
- if (!cont_i_done(c)) context_in_bounds(le, src, c);
|
|
+ if (!cont_i_done(c)) context_in_bounds(le, src, c, 0, true);
|
|
|
|
c = cont_i_for_access(dest.access());
|
|
while (!cont_i_done(c) && !cont_i_cur_is_loop(c)) cont_i_next(c);
|
|
- if (!cont_i_done(c)) context_in_bounds(le, dest, c);
|
|
+ if (!cont_i_done(c)) context_in_bounds(le, dest, c, 0, true);
|
|
|
|
assert(copy(loops_execute).is_upper_bound_satisfiable());
|
|
|
|
--- a/petit/src/browsedd.c
|
|
+++ b/petit/src/browsedd.c
|
|
@@ -637,8 +637,8 @@ void write_deps(char *filename , char *inputfile,
|
|
|
|
F_And *f = it.add_and();
|
|
|
|
- access_in_bounds(f, a);
|
|
- access_in_bounds(f, b);
|
|
+ access_in_bounds(f, a, 0, true);
|
|
+ access_in_bounds(f, b, 0, true);
|
|
it.finalize();
|
|
|
|
it = Intersection(it,
|
|
--- a/petit/src/build_stmt_rel.c
|
|
+++ b/petit/src/build_stmt_rel.c
|
|
@@ -197,7 +197,7 @@ static Relation buildBoundsSet(int stmt)
|
|
|
|
F_And *f = it.add_and();
|
|
|
|
- access_in_bounds(f, a1);
|
|
+ access_in_bounds(f, a1, 0, true);
|
|
it.finalize();
|
|
it.simplify(1,1);
|
|
return it;
|
|
@@ -218,8 +218,8 @@ static Relation getBoundsRelation(int stmt1, int stmt2)
|
|
|
|
// unify_symbolic_constants(f, a1, a2, 0);
|
|
|
|
- access_in_bounds(f, a1);
|
|
- access_in_bounds(f, a2);
|
|
+ access_in_bounds(f, a1, 0, true);
|
|
+ access_in_bounds(f, a2, 0, true);
|
|
it.finalize();
|
|
it.simplify(1,1);
|
|
return it;
|
|
--- a/petit/src/ddomega.c
|
|
+++ b/petit/src/ddomega.c
|
|
@@ -109,8 +109,8 @@ static Relation memory_dependence_relation(a_access access1, a_access access2)
|
|
|
|
F_And *f = it.add_and();
|
|
|
|
- access_in_bounds(f, a);
|
|
- access_in_bounds(f, b);
|
|
+ access_in_bounds(f, a, 0, true);
|
|
+ access_in_bounds(f, b, 0, true);
|
|
access_same_memory(f, a, b);
|
|
it.finalize();
|
|
|
|
@@ -181,7 +181,7 @@ void dd_omega_test(a_access access1, a_access access2,
|
|
if (access1!=Entry) {
|
|
assert (access2 == ExitNode);
|
|
AccessIteration a(access1,simple_rel, Input_Tuple);
|
|
- access_in_bounds(f,a);
|
|
+ access_in_bounds(f,a,0,true);
|
|
subscripts_equal_to_tuple(f, a, &output_vars);
|
|
}
|
|
|
|
@@ -189,7 +189,7 @@ void dd_omega_test(a_access access1, a_access access2,
|
|
if (access2!=ExitNode) {
|
|
assert (access1 == Entry);
|
|
AccessIteration b(access2,simple_rel, Output_Tuple);
|
|
- access_in_bounds(f, b);
|
|
+ access_in_bounds(f, b, 0, true);
|
|
subscripts_equal_to_tuple(f, b, &input_vars);
|
|
}
|
|
|
|
--- a/petit/src/hpp.c
|
|
+++ b/petit/src/hpp.c
|
|
@@ -139,7 +139,7 @@ Relation get_is(node *n) {
|
|
Relation R(node_depth(a));
|
|
AccessIteration ai(a, &R, Input_Tuple);
|
|
F_And *f = R.add_and();
|
|
- access_in_bounds(f, ai);
|
|
+ access_in_bounds(f, ai, 0, true);
|
|
R.finalize();
|
|
return R;
|
|
}
|
|
--- a/petit/src/kill.c
|
|
+++ b/petit/src/kill.c
|
|
@@ -146,7 +146,7 @@ static Relation build_initial_exposed(a_access access1)
|
|
|
|
F_And *f = it.add_and();
|
|
|
|
- access_in_bounds(f,a);
|
|
+ access_in_bounds(f,a,0,true);
|
|
it.finalize();
|
|
return it;
|
|
|
|
@@ -298,7 +298,7 @@ static change do_simple_kill(Relation &value_deps,
|
|
already_done = access_inner_shared_context_at_depth(B, A, C, lzo);
|
|
}
|
|
|
|
- access_in_bounds(fkf, bj2, already_done);
|
|
+ access_in_bounds(fkf, bj2, already_done, true);
|
|
access_same_memory(fkf, bj2, ck);
|
|
connected_by_diff(fkf, bj2, ck, killer_flow);
|
|
kf.finalize();
|