diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-09-03 18:27:40 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-09-03 18:27:40 +0200 |
commit | 5177f34535a70e4335dbab3a66c916c976405df7 (patch) | |
tree | d1f336f496028868ee5d404e7c56d8e893341a50 /backend/RTLtyping.v | |
parent | baff6e25c52d128d2e15b2916d3c60468266aba7 (diff) | |
download | compcert-kvx-5177f34535a70e4335dbab3a66c916c976405df7.tar.gz compcert-kvx-5177f34535a70e4335dbab3a66c916c976405df7.zip |
Value analysis for non trapping loads
Diffstat (limited to 'backend/RTLtyping.v')
-rw-r--r-- | backend/RTLtyping.v | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/backend/RTLtyping.v b/backend/RTLtyping.v index 6d27df28..74bfa582 100644 --- a/backend/RTLtyping.v +++ b/backend/RTLtyping.v @@ -851,6 +851,16 @@ Proof. eapply wt_regset_assign; eauto. rewrite H9; eapply Mem.load_type; eauto. Qed. +Lemma wt_exec_Iload_notrap: + forall env f chunk addr args dst s rs, + wt_instr f env (Iload NOTRAP chunk addr args dst s) -> + wt_regset env rs -> + wt_regset env (rs#dst <- (default_notrap_load_value chunk)). +Proof. + intros. + eapply wt_regset_assign; eauto. simpl. trivial. +Qed. + Lemma wt_exec_Ibuiltin: forall env f ef (ge: genv) args res s vargs m t vres m' rs, wt_instr f env (Ibuiltin ef args res s) -> @@ -930,6 +940,10 @@ Proof. econstructor; eauto. eapply wt_exec_Iop; eauto. (* Iload *) econstructor; eauto. eapply wt_exec_Iload; eauto. + (* Iload notrap1*) + econstructor; eauto. eapply wt_exec_Iload_notrap; eauto. + (* Iload notrap2*) + econstructor; eauto. eapply wt_exec_Iload_notrap; eauto. (* Istore *) econstructor; eauto. (* Icall *) |