summaryrefslogtreecommitdiff
path: root/middle_end
diff options
context:
space:
mode:
authorTom Kelly <ctk21@cl.cam.ac.uk>2021-03-03 15:28:59 +0000
committerTom Kelly <ctk21@cl.cam.ac.uk>2021-03-03 15:28:59 +0000
commit86fbc7e8d59311cc18818616c18d6fca39e0ecda (patch)
tree1e153ea5126cf3e1eaa216cf1184961487852a3e /middle_end
parent38e500510b83f55472d0f8dde82eb53ece926c99 (diff)
parentb7509ca82f9bd647c1cb7e810b6bb152e145e3fb (diff)
downloadocaml-86fbc7e8d59311cc18818616c18d6fca39e0ecda.tar.gz
Merge commit 'b7509ca82f9bd647c1cb7e810b6bb152e145e3fb' into parallel_minor_gc_4_12
Diffstat (limited to 'middle_end')
-rw-r--r--middle_end/closure/closure.ml29
-rw-r--r--middle_end/flambda/closure_conversion.ml8
2 files changed, 21 insertions, 16 deletions
diff --git a/middle_end/closure/closure.ml b/middle_end/closure/closure.ml
index 9a0b75db9c..bc942c27c8 100644
--- a/middle_end/closure/closure.ml
+++ b/middle_end/closure/closure.ml
@@ -945,12 +945,14 @@ let rec close ({ backend; fenv; cenv ; mutable_vars } as env) lam =
kind = Curried;
return = Pgenval;
params = List.map (fun v -> v, Pgenval) final_args;
- body = Lapply{ap_should_be_tailcall=false;
- ap_loc=loc;
- ap_func=(Lvar funct_var);
- ap_args=internal_args;
- ap_inlined=Default_inline;
- ap_specialised=Default_specialise};
+ body = Lapply{
+ ap_loc=loc;
+ ap_func=(Lvar funct_var);
+ ap_args=internal_args;
+ ap_tailcall=Default_tailcall;
+ ap_inlined=Default_inline;
+ ap_specialised=Default_specialise;
+ };
loc;
attr = default_function_attribute})
in
@@ -1071,12 +1073,15 @@ let rec close ({ backend; fenv; cenv ; mutable_vars } as env) lam =
close env arg
| Lprim(Pdirapply,[funct;arg], loc)
| Lprim(Prevapply,[arg;funct], loc) ->
- close env (Lapply{ap_should_be_tailcall=false;
- ap_loc=loc;
- ap_func=funct;
- ap_args=[arg];
- ap_inlined=Default_inline;
- ap_specialised=Default_specialise})
+ close env
+ (Lapply{
+ ap_loc=loc;
+ ap_func=funct;
+ ap_args=[arg];
+ ap_tailcall=Default_tailcall;
+ ap_inlined=Default_inline;
+ ap_specialised=Default_specialise;
+ })
| Lprim(Pgetglobal id, [], loc) ->
let dbg = Debuginfo.from_location loc in
check_constant_result (getglobal dbg id)
diff --git a/middle_end/flambda/closure_conversion.ml b/middle_end/flambda/closure_conversion.ml
index 8df123f498..0dd0f972bf 100644
--- a/middle_end/flambda/closure_conversion.ml
+++ b/middle_end/flambda/closure_conversion.ml
@@ -225,8 +225,8 @@ let rec close t env (lam : Lambda.lambda) : Flambda.t =
in
Flambda.create_let set_of_closures_var set_of_closures
(name_expr (Project_closure (project_closure)) ~name)
- | Lapply { ap_func; ap_args; ap_loc; ap_should_be_tailcall = _;
- ap_inlined; ap_specialised; } ->
+ | Lapply { ap_func; ap_args; ap_loc;
+ ap_tailcall = _; ap_inlined; ap_specialised; } ->
Lift_code.lifting_helper (close_list t env ap_args)
~evaluation_order:`Right_to_left
~name:Names.apply_arg
@@ -418,10 +418,10 @@ let rec close t env (lam : Lambda.lambda) : Flambda.t =
{ ap_func = funct;
ap_args = [arg];
ap_loc = loc;
- ap_should_be_tailcall = false;
(* CR-someday lwhite: it would be nice to be able to give
- inlined attributes to functions applied with the application
+ application attributes to functions applied with the application
operators. *)
+ ap_tailcall = Default_tailcall;
ap_inlined = Default_inline;
ap_specialised = Default_specialise;
}