aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Allocproof.v
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-01-14 14:23:26 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-01-14 14:23:26 +0000
commita82c9c0e4a0b8e37c9c3ea5ae99714982563606f (patch)
tree93b9999698a4cd47ec4cb5fcdcdfd215d62f8e9e /backend/Allocproof.v
parentbb8f49c419eb8205ef541edcbe17f4d14aa99564 (diff)
downloadcompcert-a82c9c0e4a0b8e37c9c3ea5ae99714982563606f.tar.gz
compcert-a82c9c0e4a0b8e37c9c3ea5ae99714982563606f.zip
Merge of the nonstrict-ops branch:
- Most RTL operators now evaluate to Some Vundef instead of None when undefined behavior occurs. - More aggressive instruction selection. - "Bertotization" of pattern-matchings now implemented by a proper preprocessor. - Cast optimization moved to cfrontend/Cminorgen; removed backend/CastOptim. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1790 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/Allocproof.v')
-rw-r--r--backend/Allocproof.v17
1 files changed, 4 insertions, 13 deletions
diff --git a/backend/Allocproof.v b/backend/Allocproof.v
index ae86ee8b..a9477e02 100644
--- a/backend/Allocproof.v
+++ b/backend/Allocproof.v
@@ -705,22 +705,13 @@ Proof.
eapply agree_assign_live; eauto.
eapply agree_reg_list_live; eauto.
- (* Icond, true *)
- assert (COND: eval_condition cond (map ls (map assign args)) m = Some true).
+ (* Icond *)
+ assert (COND: eval_condition cond (map ls (map assign args)) m = Some b).
replace (map ls (map assign args)) with (rs##args). auto.
eapply agree_eval_regs; eauto.
econstructor; split.
- eapply exec_Lcond_true; eauto. TranslInstr.
- MatchStates.
- eapply agree_undef_temps; eauto.
- eapply agree_reg_list_live. eauto.
- (* Icond, false *)
- assert (COND: eval_condition cond (map ls (map assign args)) m = Some false).
- replace (map ls (map assign args)) with (rs##args). auto.
- eapply agree_eval_regs; eauto.
- econstructor; split.
- eapply exec_Lcond_false; eauto. TranslInstr.
- MatchStates.
+ eapply exec_Lcond; eauto. TranslInstr.
+ MatchStates. destruct b; simpl; auto.
eapply agree_undef_temps; eauto.
eapply agree_reg_list_live. eauto.