diff --git a/racket/src/racket/src/compile.c b/racket/src/racket/src/compile.c index 8630c152fc..80b65dd3e3 100644 --- a/racket/src/racket/src/compile.c +++ b/racket/src/racket/src/compile.c @@ -2024,7 +2024,6 @@ gen_let_syntax (Scheme_Object *form, Scheme_Comp_Env *origenv, char *formname, Scheme_Compiled_Let_Value *last = NULL, *lv; DupCheckRecord r; int rec_env_already = rec[drec].env_already, body_block; - int already_compiled_body; Scheme_Let_Header *head; form = scheme_stx_taint_disarm(form, NULL); @@ -2342,14 +2341,6 @@ gen_let_syntax (Scheme_Object *form, Scheme_Comp_Env *origenv, char *formname, } } - if (SCHEME_STX_PAIRP(forms) - && SAME_TYPE(SCHEME_TYPE(SCHEME_STX_VAL(SCHEME_STX_CAR(forms))), - scheme_already_comp_type)) - already_compiled_body = 1; - else - already_compiled_body = 0; - - env->value_name = defname ? SCHEME_STX_SYM(defname) : NULL; { Scheme_Object *cs; diff --git a/racket/src/racket/src/optimize.c b/racket/src/racket/src/optimize.c index d9f707e96f..661fe37e4b 100644 --- a/racket/src/racket/src/optimize.c +++ b/racket/src/racket/src/optimize.c @@ -1759,7 +1759,7 @@ Scheme_Object *optimize_for_inline(Optimize_Info *info, Scheme_Object *le, int a { int single_use = 0, psize = 0; Scheme_Object *bad_app = NULL, *prev = NULL, *orig_le = le; - int outside_nested = 0, already_opt = optimized_rator, nonleaf, noapp, via_local = 0; + int already_opt = optimized_rator, nonleaf, noapp; noapp = !app && !app2 && !app3; if ((info->inline_fuel < 0) && info->has_nonleaf && !noapp) @@ -1780,9 +1780,7 @@ Scheme_Object *optimize_for_inline(Optimize_Info *info, Scheme_Object *le, int a if (SAME_TYPE(SCHEME_TYPE(le), scheme_compiled_local_type)) { /* Check for inlining: */ le = optimize_info_lookup(info, le, 1, &single_use, 0, 0, &psize, NULL); - outside_nested = 1; already_opt = 1; - via_local = 1; } if (le) { @@ -1829,7 +1827,6 @@ Scheme_Object *optimize_for_inline(Optimize_Info *info, Scheme_Object *le, int a } if (!le) break; - outside_nested = 1; already_opt = 1; } else break; @@ -4008,6 +4005,8 @@ static Scheme_Object *optimize_sequence(Scheme_Object *o, Optimize_Info *info, i if (sub_opt) optimize_info_seq_init(info, &info_seq); + else + memset(&info_seq, 0, sizeof(info_seq)); count = s->count; for (i = 0; i < count; i++) { @@ -6144,13 +6143,6 @@ scheme_optimize_lets(Scheme_Object *form, Optimize_Info *info, int for_inline, i value = extract_specialized_proc(value, value); if (value && (scheme_compiled_propagate_ok(value, body_info))) { - int cnt; - - if (is_rec) - cnt = 2; - else - cnt = pre_body->vars[0]->use_count; - pre_body->vars[0]->optimize.known_val = value; did_set_value = 1; } else if (value && !is_rec) { diff --git a/racket/src/racket/src/resolve.c b/racket/src/racket/src/resolve.c index a1b003db0c..bac7a04c6d 100644 --- a/racket/src/racket/src/resolve.c +++ b/racket/src/racket/src/resolve.c @@ -1568,7 +1568,7 @@ static int is_nonconstant_procedure(Scheme_Object *_data, Resolve_Info *info, Sc if (var->optimize_used) { MZ_ASSERT(var->mode == SCHEME_VAR_MODE_RESOLVE); - resolve_info_lookup(info, var, &lifted, 0, 0); + (void)resolve_info_lookup(info, var, &lifted, 0, 0); if (!lifted) return 1; if (SAME_TYPE(SCHEME_TYPE(lifted), scheme_toplevel_type) @@ -1649,14 +1649,13 @@ resolve_closure_compilation(Scheme_Object *_data, Resolve_Info *info, for (i = 0; i < cl->base_closure->size; i++) { if (cl->base_closure->vals[i]) { Scheme_Compiled_Local *var = SCHEME_VAR(cl->base_closure->keys[i]); - int li; if ((var->mode == SCHEME_VAR_MODE_OPTIMIZE) || !var->optimize_used) { /* reference must have been optimized away; drop it from the closure */ } else { - li = resolve_info_lookup(info, var, &lifted, 0, 0); + (void)resolve_info_lookup(info, var, &lifted, 0, 0); if (lifted) { /* Drop lifted binding from closure. */ if (SAME_TYPE(SCHEME_TYPE(lifted), scheme_toplevel_type) @@ -1882,6 +1881,9 @@ resolve_closure_compilation(Scheme_Object *_data, Resolve_Info *info, data->code = bcode; } } + } else { + new_info = NULL; + closure_map = NULL; } if ((closure_size == 1) @@ -3633,7 +3635,6 @@ Scheme_App_Rec *maybe_unresolve_app_refs(Scheme_App_Rec *app, Unresolve_Info *ui Scheme_Case_Lambda *cl; Scheme_Closure_Data *d0, *d1; Scheme_Set_Bang *sb; - Scheme_Object *local; Scheme_Object *s; Scheme_Compiled_Local *arg; int pos; @@ -3676,7 +3677,6 @@ Scheme_App_Rec *maybe_unresolve_app_refs(Scheme_App_Rec *app, Unresolve_Info *ui sb = MALLOC_ONE_TAGGED(Scheme_Set_Bang); sb->so.type = scheme_set_bang_type; sb->var = (Scheme_Object *)arg; - local = scheme_make_local(scheme_local_type, 0, 0); sb->val = (Scheme_Object *)vars[0]; d1->code = (Scheme_Object *)sb; ci = MALLOC_ONE_RT(Closure_Info);