CSE bug on amd64: Ifloatsqrtf involves a memory load

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15004 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Mark Shinwell 2014-07-16 09:24:59 +00:00
parent 5208fbc99f
commit a68f192d48
1 changed files with 8 additions and 5 deletions

View File

@ -22,11 +22,14 @@ inherit cse_generic as super
method! class_of_operation op =
match op with
| Ispecific(Ilea _) -> Op_pure
| Ispecific(Istore_int(_, _, is_asg)) -> Op_store is_asg
| Ispecific(Istore_symbol(_, _, is_asg)) -> Op_store is_asg
| Ispecific(Ioffset_loc(_, _)) -> Op_store true
| Ispecific(Ifloatarithmem _) -> Op_load
| Ispecific spec ->
begin match spec with
| Ilea _ -> Op_pure
| Istore_int(_, _, is_asg) | Istore_symbol(_, _, is_asg) -> Op_store is_asg
| Ioffset_loc(_, _) -> Op_store true
| Ifloatarithmem _ | Ifloatsqrtf _ -> Op_load
| Ibswap _ | Isqrtf -> super#class_of_operation op
end
| _ -> super#class_of_operation op
end