Swap arguments of optimize_get_predicate
This commit is contained in:
parent
9cb0637f95
commit
89e00da75e
|
@ -127,8 +127,8 @@ static Scheme_Object *optimize_info_lookup(Optimize_Info *info, int pos, int *cl
|
||||||
int once_used_ok, int context, int *potential_size, int *_mutated);
|
int once_used_ok, int context, int *potential_size, int *_mutated);
|
||||||
static Scheme_Object *optimize_info_mutated_lookup(Optimize_Info *info, int pos, int *is_mutated);
|
static Scheme_Object *optimize_info_mutated_lookup(Optimize_Info *info, int pos, int *is_mutated);
|
||||||
static void optimize_info_used_top(Optimize_Info *info);
|
static void optimize_info_used_top(Optimize_Info *info);
|
||||||
static Scheme_Object *do_optimize_get_predicate(int pos, Optimize_Info *info, int ignore_no_types);
|
static Scheme_Object *do_optimize_get_predicate(Optimize_Info *info, int pos, int ignore_no_types);
|
||||||
static Scheme_Object *optimize_get_predicate(int pos, Optimize_Info *info);
|
static Scheme_Object *optimize_get_predicate(Optimize_Info *info, int pos);
|
||||||
static void add_type(Optimize_Info *info, int pos, Scheme_Object *pred);
|
static void add_type(Optimize_Info *info, int pos, Scheme_Object *pred);
|
||||||
static void merge_types(Optimize_Info *src_info, Optimize_Info *info, int delta);
|
static void merge_types(Optimize_Info *src_info, Optimize_Info *info, int delta);
|
||||||
static Scheme_Object *lookup_constant_proc(Optimize_Info *info, Scheme_Object *rand, int delta);
|
static Scheme_Object *lookup_constant_proc(Optimize_Info *info, Scheme_Object *rand, int delta);
|
||||||
|
@ -2462,7 +2462,7 @@ static Scheme_Object *expr_implies_predicate(Scheme_Object *expr, Optimize_Info
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!optimize_is_mutated(info, pos)){
|
if (!optimize_is_mutated(info, pos)){
|
||||||
p = optimize_get_predicate(pos, info);
|
p = optimize_get_predicate(info, pos);
|
||||||
if (p)
|
if (p)
|
||||||
return p;
|
return p;
|
||||||
|
|
||||||
|
@ -4183,7 +4183,7 @@ static Scheme_Object *collapse_local(int pos, Optimize_Info *info, int context)
|
||||||
if (!optimize_is_mutated(info, pos)) {
|
if (!optimize_is_mutated(info, pos)) {
|
||||||
Scheme_Object *pred;
|
Scheme_Object *pred;
|
||||||
|
|
||||||
pred = optimize_get_predicate(pos, info);
|
pred = optimize_get_predicate(info, pos);
|
||||||
if (pred) {
|
if (pred) {
|
||||||
if (SAME_OBJ(pred, scheme_not_prim))
|
if (SAME_OBJ(pred, scheme_not_prim))
|
||||||
return scheme_false;
|
return scheme_false;
|
||||||
|
@ -4244,7 +4244,7 @@ static void add_type(Optimize_Info *info, int pos, Scheme_Object *pred)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Don't add the type if something is already there, this may happen when no_types. */
|
/* Don't add the type if something is already there, this may happen when no_types. */
|
||||||
if (do_optimize_get_predicate(pos, info, 1)
|
if (do_optimize_get_predicate(info, pos, 1)
|
||||||
|| optimize_is_local_type_valued(info, pos)) {
|
|| optimize_is_local_type_valued(info, pos)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -4348,7 +4348,7 @@ static void add_types_for_t_branch(Scheme_Object *t, Optimize_Info *info, int fu
|
||||||
if (SAME_OBJ(app->rator, scheme_eq_prim)) {
|
if (SAME_OBJ(app->rator, scheme_eq_prim)) {
|
||||||
if (SAME_TYPE(SCHEME_TYPE(app->rand1), scheme_local_type)
|
if (SAME_TYPE(SCHEME_TYPE(app->rand1), scheme_local_type)
|
||||||
&& !optimize_is_mutated(info, SCHEME_LOCAL_POS(app->rand1))) {
|
&& !optimize_is_mutated(info, SCHEME_LOCAL_POS(app->rand1))) {
|
||||||
pred1 = optimize_get_predicate(SCHEME_LOCAL_POS(app->rand1), info);
|
pred1 = optimize_get_predicate(info, SCHEME_LOCAL_POS(app->rand1));
|
||||||
if (!pred1) {
|
if (!pred1) {
|
||||||
pred2 = expr_implies_predicate(app->rand2, info, 0, 5);
|
pred2 = expr_implies_predicate(app->rand2, info, 0, 5);
|
||||||
if (pred2)
|
if (pred2)
|
||||||
|
@ -4357,7 +4357,7 @@ static void add_types_for_t_branch(Scheme_Object *t, Optimize_Info *info, int fu
|
||||||
}
|
}
|
||||||
if (SAME_TYPE(SCHEME_TYPE(app->rand2), scheme_local_type)
|
if (SAME_TYPE(SCHEME_TYPE(app->rand2), scheme_local_type)
|
||||||
&& !optimize_is_mutated(info, SCHEME_LOCAL_POS(app->rand2))) {
|
&& !optimize_is_mutated(info, SCHEME_LOCAL_POS(app->rand2))) {
|
||||||
pred2 = optimize_get_predicate(SCHEME_LOCAL_POS(app->rand2), info);
|
pred2 = optimize_get_predicate(info, SCHEME_LOCAL_POS(app->rand2));
|
||||||
if (!pred2) {
|
if (!pred2) {
|
||||||
pred1 = expr_implies_predicate(app->rand1, info, 0, 5);
|
pred1 = expr_implies_predicate(app->rand1, info, 0, 5);
|
||||||
if (pred1)
|
if (pred1)
|
||||||
|
@ -9156,7 +9156,7 @@ static Scheme_Object *optimize_info_mutated_lookup(Optimize_Info *info, int pos,
|
||||||
return do_optimize_info_lookup(info, pos, 0, NULL, NULL, NULL, 0, 0, NULL, 0, is_mutated, 1);
|
return do_optimize_info_lookup(info, pos, 0, NULL, NULL, NULL, 0, 0, NULL, 0, is_mutated, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *do_optimize_get_predicate(int pos, Optimize_Info *info, int ignore_no_types)
|
Scheme_Object *do_optimize_get_predicate(Optimize_Info *info, int pos, int ignore_no_types)
|
||||||
/* pos is in new-frame counts */
|
/* pos is in new-frame counts */
|
||||||
{
|
{
|
||||||
Scheme_Object *pred;
|
Scheme_Object *pred;
|
||||||
|
@ -9178,10 +9178,10 @@ Scheme_Object *do_optimize_get_predicate(int pos, Optimize_Info *info, int ignor
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *optimize_get_predicate(int pos, Optimize_Info *info)
|
Scheme_Object *optimize_get_predicate(Optimize_Info *info, int pos)
|
||||||
/* pos is in new-frame counts */
|
/* pos is in new-frame counts */
|
||||||
{
|
{
|
||||||
return do_optimize_get_predicate(pos, info, 0);
|
return do_optimize_get_predicate(info, pos, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Optimize_Info *optimize_info_add_frame(Optimize_Info *info, int orig, int current, int flags)
|
static Optimize_Info *optimize_info_add_frame(Optimize_Info *info, int orig, int current, int flags)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user