diff options
-rw-r--r-- | aarch64/ExpansionOracle.ml | 17 | ||||
-rw-r--r-- | aarch64/RTLpathSE_simplify.v | 42 | ||||
l--------- | arm/ExpansionOracle.ml | 1 | ||||
l--------- | arm/RTLpathSE_simplify.v | 1 | ||||
l--------- | kvx/ExpansionOracle.ml | 1 | ||||
l--------- | kvx/RTLpathSE_simplify.v | 1 | ||||
l--------- | powerpc/ExpansionOracle.ml | 1 | ||||
l--------- | powerpc/RTLpathSE_simplify.v | 1 | ||||
-rw-r--r-- | scheduling/RTLpathScheduleraux.ml | 2 | ||||
l--------- | x86/ExpansionOracle.ml | 1 | ||||
l--------- | x86/RTLpathSE_simplify.v | 1 |
11 files changed, 68 insertions, 1 deletions
diff --git a/aarch64/ExpansionOracle.ml b/aarch64/ExpansionOracle.ml new file mode 100644 index 00000000..3b63b80d --- /dev/null +++ b/aarch64/ExpansionOracle.ml @@ -0,0 +1,17 @@ +(* *************************************************************) +(* *) +(* The Compcert verified compiler *) +(* *) +(* Léo Gourdin UGA, VERIMAG *) +(* *) +(* Copyright VERIMAG. All rights reserved. *) +(* This file is distributed under the terms of the INRIA *) +(* Non-Commercial License Agreement. *) +(* *) +(* *************************************************************) + +open RTLpathCommon + +let expanse (sb : superblock) code pm = (code, pm) + +let find_last_node_reg c = () diff --git a/aarch64/RTLpathSE_simplify.v b/aarch64/RTLpathSE_simplify.v new file mode 100644 index 00000000..1ee7dac5 --- /dev/null +++ b/aarch64/RTLpathSE_simplify.v @@ -0,0 +1,42 @@ +Require Import Coqlib Floats Values Memory. +Require Import Integers. +Require Import Op Registers. +Require Import RTLpathSE_theory. +Require Import RTLpathSE_simu_specs. + +(** Target op simplifications using "fake" values *) + +Definition target_op_simplify (op: operation) (lr: list reg) (hst: hsistate_local): option hsval := + None. + +Definition target_cbranch_expanse (prev: hsistate_local) (cond: condition) (args: list reg) : option (condition * list_hsval) := + None. + +(* Main proof of simplification *) + +Lemma target_op_simplify_correct op lr hst fsv ge sp rs0 m0 st args m: forall + (H: target_op_simplify op lr hst = Some fsv) + (REF: hsilocal_refines ge sp rs0 m0 hst st) + (OK0: hsok_local ge sp rs0 m0 hst) + (OK1: seval_list_sval ge sp (list_sval_inj (map (si_sreg st) lr)) rs0 m0 = Some args) + (OK2: seval_smem ge sp (si_smem st) rs0 m0 = Some m), + seval_sval ge sp (hsval_proj fsv) rs0 m0 = eval_operation ge sp op args m. +Proof. + unfold target_op_simplify; simpl. + intros H (LREF & SREF & SREG & SMEM) ? ? ?. + congruence. +Qed. + +Lemma target_cbranch_expanse_correct hst c l ge sp rs0 m0 st c' l': forall + (TARGET: target_cbranch_expanse hst c l = Some (c', l')) + (LREF : hsilocal_refines ge sp rs0 m0 hst st) + (OK: hsok_local ge sp rs0 m0 hst), + seval_condition ge sp c' (hsval_list_proj l') (si_smem st) rs0 m0 = + seval_condition ge sp c (list_sval_inj (map (si_sreg st) l)) (si_smem st) rs0 m0. +Proof. + unfold target_cbranch_expanse, seval_condition; simpl. + intros H (LREF & SREF & SREG & SMEM) ?. + congruence. +Qed. +Global Opaque target_op_simplify. +Global Opaque target_cbranch_expanse. diff --git a/arm/ExpansionOracle.ml b/arm/ExpansionOracle.ml new file mode 120000 index 00000000..ee2674bf --- /dev/null +++ b/arm/ExpansionOracle.ml @@ -0,0 +1 @@ +../aarch64/ExpansionOracle.ml
\ No newline at end of file diff --git a/arm/RTLpathSE_simplify.v b/arm/RTLpathSE_simplify.v new file mode 120000 index 00000000..55bf0e52 --- /dev/null +++ b/arm/RTLpathSE_simplify.v @@ -0,0 +1 @@ +../aarch64/RTLpathSE_simplify.v
\ No newline at end of file diff --git a/kvx/ExpansionOracle.ml b/kvx/ExpansionOracle.ml new file mode 120000 index 00000000..ee2674bf --- /dev/null +++ b/kvx/ExpansionOracle.ml @@ -0,0 +1 @@ +../aarch64/ExpansionOracle.ml
\ No newline at end of file diff --git a/kvx/RTLpathSE_simplify.v b/kvx/RTLpathSE_simplify.v new file mode 120000 index 00000000..55bf0e52 --- /dev/null +++ b/kvx/RTLpathSE_simplify.v @@ -0,0 +1 @@ +../aarch64/RTLpathSE_simplify.v
\ No newline at end of file diff --git a/powerpc/ExpansionOracle.ml b/powerpc/ExpansionOracle.ml new file mode 120000 index 00000000..ee2674bf --- /dev/null +++ b/powerpc/ExpansionOracle.ml @@ -0,0 +1 @@ +../aarch64/ExpansionOracle.ml
\ No newline at end of file diff --git a/powerpc/RTLpathSE_simplify.v b/powerpc/RTLpathSE_simplify.v new file mode 120000 index 00000000..55bf0e52 --- /dev/null +++ b/powerpc/RTLpathSE_simplify.v @@ -0,0 +1 @@ +../aarch64/RTLpathSE_simplify.v
\ No newline at end of file diff --git a/scheduling/RTLpathScheduleraux.ml b/scheduling/RTLpathScheduleraux.ml index b13d559e..378bf097 100644 --- a/scheduling/RTLpathScheduleraux.ml +++ b/scheduling/RTLpathScheduleraux.ml @@ -10,7 +10,7 @@ open ExpansionOracle let config = Machine.config -let print_superblock sb code = +let print_superblock (sb: superblock) code = let insts = sb.instructions in let li = sb.liveins in let outs = sb.s_output_regs in diff --git a/x86/ExpansionOracle.ml b/x86/ExpansionOracle.ml new file mode 120000 index 00000000..ee2674bf --- /dev/null +++ b/x86/ExpansionOracle.ml @@ -0,0 +1 @@ +../aarch64/ExpansionOracle.ml
\ No newline at end of file diff --git a/x86/RTLpathSE_simplify.v b/x86/RTLpathSE_simplify.v new file mode 120000 index 00000000..55bf0e52 --- /dev/null +++ b/x86/RTLpathSE_simplify.v @@ -0,0 +1 @@ +../aarch64/RTLpathSE_simplify.v
\ No newline at end of file |