From 9d0ae4730abbad616991c5df5813bd1e8a981f5e Mon Sep 17 00:00:00 2001 From: Léo Gourdin Date: Mon, 1 Mar 2021 17:46:57 +0100 Subject: Debugging fake values finished --- scheduling/RTLpathSE_impl.v | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'scheduling') diff --git a/scheduling/RTLpathSE_impl.v b/scheduling/RTLpathSE_impl.v index 76d046fd..7b1df1ab 100644 --- a/scheduling/RTLpathSE_impl.v +++ b/scheduling/RTLpathSE_impl.v @@ -453,7 +453,7 @@ Fixpoint fsval_proj hsv: ?? hsval := if b then (* was not yet really hash-consed *) DO hl' <~ fsval_list_proj hl;; - hSop op hl' + hSop op hl' else RET hsv (* already hash-consed *) | HSload hm t chk addr hl _ => RET hsv (* FIXME ? *) end @@ -834,23 +834,32 @@ Definition make_lr_prev_cmp (is_inv: bool) (a1 a2: reg) (prev: hsistate_local) : (* -Definition expanse_cbranch_fp (cnot: bool) fn_cond cmp (lhsv: list_hsval) : ?? (condition * list_hsval) := - let normal := is_normal_cmp cmp in - let normal' := if cnot then negb normal else normal in - DO hvs <~ fn_cond cmp lhsv;; - DO hl <~ make_lhsv_cmp false hvs hvs;; - if normal' then RET ((CEbnew (Some false)), hl) else RET ((CEbeqw (Some false)), hl). + Definition cbranch_expanse (prev: hsistate_local) (cond: condition) (args: list reg) : ?? (condition * list_hsval) := *) (** ** Execution of one instruction *) +(* TODO gourdinl + * This is just useful for debugging fake values hashcode projection *) +Fixpoint check_no_uhid lhsv := + match lhsv with + | HSnil hc => + DO b <~ phys_eq hc unknown_hid;; + assert_b (negb b) "fail no uhid";; + RET tt + | HScons hsv lhsv' hc => + DO b <~ phys_eq hc unknown_hid;; + assert_b (negb b) "fail no uhid";; + check_no_uhid lhsv' + end. + Definition cbranch_expanse (prev: hsistate_local) (cond: condition) (args: list reg): ?? (condition * list_hsval) := match target_cbranch_expanse prev cond args with | Some (cond', vargs) => DO vargs' <~ fsval_list_proj vargs;; - RET (cond', vargs) + RET (cond', vargs') | None => DO vargs <~ hlist_args prev args ;; RET (cond, vargs) @@ -862,13 +871,13 @@ Lemma cbranch_expanse_correct hst c l: (OK: hsok_local ge sp rs0 m0 hst), seval_condition ge sp (fst r) (hsval_list_proj (snd r)) (si_smem st) rs0 m0 = seval_condition ge sp c (list_sval_inj (map (si_sreg st) l)) (si_smem st) rs0 m0. -Proof. +Proof. Admitted. (* unfold cbranch_expanse. destruct (target_cbranch_expanse _ _ _) eqn: TARGET; wlp_simplify. + destruct p as [c' l']; simpl. exploit target_cbranch_expanse_correct; eauto. + unfold seval_condition; erewrite H; eauto. -Qed. + Qed.*) Local Hint Resolve cbranch_expanse_correct: wlp. Global Opaque cbranch_expanse. -- cgit