summaryrefslogtreecommitdiff
path: root/asmcomp/deadcode.ml
diff options
context:
space:
mode:
authorNicolás Ojeda Bär <n.oje.bar@gmail.com>2020-10-08 15:19:31 +0200
committerNicolás Ojeda Bär <n.oje.bar@gmail.com>2020-10-08 20:28:12 +0200
commit540996d21ee3793a1cecce252c81fb76a6b9fd61 (patch)
tree3eb32bd86830bf1336f4bc626f218088b2ae0232 /asmcomp/deadcode.ml
parenteb342da8a9cdbce0760b91c9b9d5e682ed0d4496 (diff)
downloadocaml-540996d21ee3793a1cecce252c81fb76a6b9fd61.tar.gz
Remove Spacetime
Diffstat (limited to 'asmcomp/deadcode.ml')
-rw-r--r--asmcomp/deadcode.ml16
1 files changed, 5 insertions, 11 deletions
diff --git a/asmcomp/deadcode.ml b/asmcomp/deadcode.ml
index 2550639dae..c308e426dc 100644
--- a/asmcomp/deadcode.ml
+++ b/asmcomp/deadcode.ml
@@ -37,28 +37,22 @@ let append a b =
| _ -> append a b
let rec deadcode i =
- let arg =
- if Config.spacetime
- && Mach.spacetime_node_hole_pointer_is_live_before i
- then Array.append i.arg [| Proc.loc_spacetime_node_hole |]
- else i.arg
- in
match i.desc with
| Iend | Ireturn | Iop(Itailcall_ind _) | Iop(Itailcall_imm _) | Iraise _ ->
- let regs = Reg.add_set_array i.live arg in
+ let regs = Reg.add_set_array i.live i.arg in
{ i; regs; exits = Int.Set.empty; }
| Iop op ->
let s = deadcode i.next in
if Proc.op_is_pure op (* no side effects *)
&& Reg.disjoint_set_array s.regs i.res (* results are not used after *)
- && not (Proc.regs_are_volatile arg) (* no stack-like hard reg *)
+ && not (Proc.regs_are_volatile i.arg) (* no stack-like hard reg *)
&& not (Proc.regs_are_volatile i.res) (* is involved *)
then begin
assert (Array.length i.res > 0); (* sanity check *)
s
end else begin
{ i = {i with next = s.i};
- regs = Reg.add_set_array i.live arg;
+ regs = Reg.add_set_array i.live i.arg;
exits = s.exits;
}
end
@@ -67,7 +61,7 @@ let rec deadcode i =
let ifnot' = deadcode ifnot in
let s = deadcode i.next in
{ i = {i with desc = Iifthenelse(test, ifso'.i, ifnot'.i); next = s.i};
- regs = Reg.add_set_array i.live arg;
+ regs = Reg.add_set_array i.live i.arg;
exits = Int.Set.union s.exits
(Int.Set.union ifso'.exits ifnot'.exits);
}
@@ -76,7 +70,7 @@ let rec deadcode i =
let cases' = Array.map (fun c -> c.i) dc in
let s = deadcode i.next in
{ i = {i with desc = Iswitch(index, cases'); next = s.i};
- regs = Reg.add_set_array i.live arg;
+ regs = Reg.add_set_array i.live i.arg;
exits = Array.fold_left
(fun acc c -> Int.Set.union acc c.exits) s.exits dc;
}