diff options
author | Léo Gourdin <leo.gourdin@lilo.org> | 2021-11-02 16:25:58 +0100 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@lilo.org> | 2021-11-02 16:25:58 +0100 |
commit | 17b1ec4333af8120ab6867baf9c5c9139541c6b7 (patch) | |
tree | 71bd521b6603820c81217ebc10a24fcd940f110a /backend/Profilingproof.v | |
parent | e9dc339d5e5ec129dcf6b541d6c70f9ca7fe134c (diff) | |
parent | 98ec44d9d96e7e94896eea9ac054a0188be7b6dd (diff) | |
download | compcert-kvx-17b1ec4333af8120ab6867baf9c5c9139541c6b7.tar.gz compcert-kvx-17b1ec4333af8120ab6867baf9c5c9139541c6b7.zip |
Merge branch 'RTL_has_loaded' into kvx-work
Diffstat (limited to 'backend/Profilingproof.v')
-rw-r--r-- | backend/Profilingproof.v | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/backend/Profilingproof.v b/backend/Profilingproof.v index 0cebc601..e39e7f80 100644 --- a/backend/Profilingproof.v +++ b/backend/Profilingproof.v @@ -458,27 +458,27 @@ Proof. * rewrite eval_operation_preserved with (ge1:=ge); eauto with profiling. + constructor; auto. - - econstructor; split. - + apply plus_one. apply exec_Iload with (trap:=trap) (chunk:=chunk) - (addr:=addr) (args:=args) (a:=a). - erewrite transf_function_at; eauto. apply I. - rewrite eval_addressing_preserved with (ge1:=ge). - all: eauto with profiling. - + constructor; auto. - - econstructor; split. - + apply plus_one. apply exec_Iload_notrap1 with (chunk:=chunk) - (addr:=addr) (args:=args). - erewrite transf_function_at; eauto. apply I. - rewrite eval_addressing_preserved with (ge1:=ge). - all: eauto with profiling. - + constructor; auto. - - econstructor; split. - + apply plus_one. apply exec_Iload_notrap2 with (chunk:=chunk) - (addr:=addr) (args:=args) (a:=a). - erewrite transf_function_at; eauto. apply I. - rewrite eval_addressing_preserved with (ge1:=ge). - all: eauto with profiling. - + constructor; auto. + - inv H0. + + econstructor; split. + * apply plus_one. eapply exec_Iload; eauto. + -- erewrite transf_function_at; eauto. apply I. + -- eapply has_loaded_normal. rewrite eval_addressing_preserved with (ge1:=ge). + all: eauto with profiling. + * constructor; auto. + + destruct (eval_addressing) eqn:EVAL in LOAD. + * econstructor; split. + -- specialize (LOAD v). apply plus_one. eapply exec_Iload; eauto. + ++ erewrite transf_function_at; eauto. apply I. + ++ eapply has_loaded_default; eauto. rewrite eval_addressing_preserved with (ge1:=ge). + intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. apply LOAD; auto. + eauto with profiling. + -- constructor; auto. + * econstructor; split. + -- apply plus_one. eapply exec_Iload; eauto. + ++ erewrite transf_function_at; eauto. apply I. + ++ eapply has_loaded_default; eauto. rewrite eval_addressing_preserved with (ge1:=ge). + intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. eauto with profiling. + -- constructor; auto. - econstructor; split. + apply plus_one. apply exec_Istore with (chunk:=chunk) (src := src) (addr:=addr) (args:=args) (a:=a). |