From bc24cf49659f91245d8f42ca06fbe7d21a5c06cd Mon Sep 17 00:00:00 2001 From: xleroy Date: Thu, 2 May 2013 15:04:26 +0000 Subject: Extend CSE of loads following stores to chunks Mint64 and Mfloat64al32. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2231 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- backend/CSE.v | 4 ++-- backend/CSEproof.v | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'backend') diff --git a/backend/CSE.v b/backend/CSE.v index d381cc8..568705b 100644 --- a/backend/CSE.v +++ b/backend/CSE.v @@ -254,7 +254,7 @@ Definition kill_loads (n: numbering) : numbering := can prove that the store does not invalidate them. Then, an equations [rsrc = Load chunk addr rargs] is added to reflect the known content of the stored memory area, but only if [chunk] is - a "full-size" quantity ([Mint32] or [Mfloat64]). *) + a "full-size" quantity ([Mint32] or [Mfloat64] or [Mint64]). *) Definition filter_after_store (chunk: memory_chunk) (addr: addressing) (vl: list valnum) (r: rhs) : bool := match r with @@ -268,7 +268,7 @@ Definition add_store (n: numbering) (chunk: memory_chunk) (addr: addressing) let (n1, vargs) := valnum_regs n rargs in let n2 := kill_equations (filter_after_store chunk addr vargs) n1 in match chunk with - | Mint32 | Mfloat64 => add_rhs n2 rsrc (Load chunk addr vargs) + | Mint32 | Mint64 | Mfloat64 | Mfloat64al32 => add_rhs n2 rsrc (Load chunk addr vargs) | _ => n2 end. diff --git a/backend/CSEproof.v b/backend/CSEproof.v index 1e269f8..65f67ad 100644 --- a/backend/CSEproof.v +++ b/backend/CSEproof.v @@ -696,6 +696,8 @@ Proof. destruct chunk; auto; apply N3. simpl in H3. destruct (rs#src); auto || contradiction. simpl in H3. destruct (rs#src); auto || contradiction. + simpl in H3. destruct (rs#src); auto || contradiction. + simpl in H3. destruct (rs#src); auto || contradiction. Qed. (** Correctness of [reg_valnum]: if it returns a register [r], -- cgit v1.2.3