inline a few more predicates

svn: r2358
This commit is contained in:
Matthew Flatt 2006-03-03 17:37:46 +00:00
parent 776e15490e
commit c88dc9c26b
4 changed files with 32 additions and 20 deletions

View File

@ -189,11 +189,12 @@ scheme_init_fun (Scheme_Env *env)
REGISTER_SO(cached_dv_stx);
REGISTER_SO(cached_ds_stx);
scheme_add_global_constant("procedure?",
scheme_make_folding_prim(procedure_p,
o = scheme_make_folding_prim(procedure_p,
"procedure?",
1, 1, 1),
env);
1, 1, 1);
SCHEME_PRIM_PROC_FLAGS(o) |= SCHEME_PRIM_IS_UNARY_INLINED;
scheme_add_global_constant("procedure?", o, env);
scheme_add_global_constant("apply",
scheme_make_prim_w_arity2(apply,
"apply",

View File

@ -2051,6 +2051,18 @@ static int generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
} else if (IS_NAMED_PRIM(rator, "real?")) {
generate_inlined_type_test(jitter, app, scheme_integer_type, scheme_complex_izi_type, for_branch, branch_short);
return 1;
} else if (IS_NAMED_PRIM(rator, "procedure?")) {
generate_inlined_type_test(jitter, app, scheme_prim_type, scheme_native_closure_type, for_branch, branch_short);
return 1;
} else if (IS_NAMED_PRIM(rator, "vector?")) {
generate_inlined_type_test(jitter, app, scheme_vector_type, scheme_vector_type, for_branch, branch_short);
return 1;
} else if (IS_NAMED_PRIM(rator, "string?")) {
generate_inlined_type_test(jitter, app, scheme_char_string_type, scheme_char_string_type, for_branch, branch_short);
return 1;
} else if (IS_NAMED_PRIM(rator, "bytes?")) {
generate_inlined_type_test(jitter, app, scheme_byte_string_type, scheme_byte_string_type, for_branch, branch_short);
return 1;
} else if (IS_NAMED_PRIM(rator, "eof-object?")) {
generate_inlined_constant_test(jitter, app, scheme_eof, NULL, for_branch, branch_short);
return 1;

View File

@ -288,6 +288,8 @@ static Scheme_Object *complete_symbol, *continues_symbol, *aborts_symbol, *error
void
scheme_init_string (Scheme_Env *env)
{
Scheme_Object *p;
REGISTER_SO(sys_symbol);
sys_symbol = scheme_intern_symbol(SYSTEM_TYPE_NAME);
@ -327,11 +329,10 @@ scheme_init_string (Scheme_Env *env)
REGISTER_SO(embedding_banner);
REGISTER_SO(current_locale_name);
scheme_add_global_constant("string?",
scheme_make_folding_prim(string_p,
"string?",
1, 1, 1),
env);
p = scheme_make_folding_prim(string_p, "string?", 1, 1, 1);
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
scheme_add_global_constant("string?", p, env);
scheme_add_global_constant("make-string",
scheme_make_noncm_prim(make_string,
"make-string",
@ -597,11 +598,10 @@ scheme_init_string (Scheme_Env *env)
1, 1, 1),
env);
scheme_add_global_constant("bytes?",
scheme_make_folding_prim(byte_string_p,
"bytes?",
1, 1, 1),
env);
p = scheme_make_folding_prim(byte_string_p, "bytes?", 1, 1, 1);
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
scheme_add_global_constant("bytes?", p, env);
scheme_add_global_constant("make-bytes",
scheme_make_noncm_prim(make_byte_string,
"make-bytes",

View File

@ -49,11 +49,10 @@ scheme_init_vector (Scheme_Env *env)
zero_length_vector->type = scheme_vector_type;
SCHEME_VEC_SIZE(zero_length_vector) = 0;
scheme_add_global_constant("vector?",
scheme_make_folding_prim(vector_p,
"vector?",
1, 1, 1),
env);
p = scheme_make_folding_prim(vector_p, "vector?", 1, 1, 1);
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
scheme_add_global_constant("vector?", p, env);
scheme_add_global_constant("make-vector",
scheme_make_noncm_prim(make_vector,
"make-vector",