Skip to content

Commit

Permalink
micro optimization: regular joins can be used in initialization code …
Browse files Browse the repository at this point in the history
…instead of leapjoins

that's 1% of free benchmark real estate
  • Loading branch information
lqd committed Oct 13, 2019
1 parent 7ba70b6 commit 61d763e
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions polonius-engine/src/output/initialization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ pub(super) fn init_var_maybe_initialized_on_exit<T: FactTypes>(
// path_maybe_initialized_on_exit(Mother, point) :-
// path_maybe_initialized_on_exit(Daughter, point),
// child(Daughter, Mother).
path_maybe_initialized_on_exit.from_leapjoin(
path_maybe_initialized_on_exit.from_join(
&path_maybe_initialized_on_exit,
child.extend_with(|&(daughter, _point)| daughter),
|&(_daughter, point), &mother| (mother, point),
&child,
|&_daughter, &point, &mother| (mother, point),
);

// TODO: the following lines contain things left to implement for move
Expand Down Expand Up @@ -92,12 +92,12 @@ pub(super) fn init_var_maybe_initialized_on_exit<T: FactTypes>(
// END TODO

// var_maybe_initialized_on_exit(var, point) :-
// path_belongs_to_var(path, var),
// path_maybe_initialized_at(path, point).
var_maybe_initialized_on_exit.from_leapjoin(
// path_maybe_initialized_on_exit(path, point),
// path_belongs_to_var(path, var).
var_maybe_initialized_on_exit.from_join(
&path_maybe_initialized_on_exit,
path_belongs_to_var.extend_with(|&(path, _point)| path),
|&(_path, point), &var| (var, point),
&path_belongs_to_var,
|&_path, &point, &var| (var, point),
);
}

Expand Down

0 comments on commit 61d763e

Please sign in to comment.