aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/BTLroadmap.md
diff options
context:
space:
mode:
authorSylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr>2021-05-26 21:42:33 +0200
committerSylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr>2021-05-27 09:46:24 +0200
commitd76f6a446a8c4866d7e89b1b5b13b24a20e6d1dc (patch)
tree7b824d1c739f06d0692dc7790067495758c508aa /scheduling/BTLroadmap.md
parent47599a2ea88799d654ec644fe5ba9892087adb39 (diff)
downloadcompcert-kvx-d76f6a446a8c4866d7e89b1b5b13b24a20e6d1dc.tar.gz
compcert-kvx-d76f6a446a8c4866d7e89b1b5b13b24a20e6d1dc.zip
end of BTL_SEtheory w.r.t fsem
Diffstat (limited to 'scheduling/BTLroadmap.md')
-rw-r--r--scheduling/BTLroadmap.md36
1 files changed, 18 insertions, 18 deletions
diff --git a/scheduling/BTLroadmap.md b/scheduling/BTLroadmap.md
index 6042803d..0cbcd7d6 100644
--- a/scheduling/BTLroadmap.md
+++ b/scheduling/BTLroadmap.md
@@ -117,37 +117,37 @@ partir du bloc d'entrée de la fonction. Ça semble complémentaire de
l'analyse de "liveout". Mais utilisable uniquement dans le cadre d'une
combinaison "exécution symbolique"+"value analysis" (donc pas tout de suite).
-**IMPLEM PLAN**
-
-1. définir the "functional semantics" of BTL (dans un premier temps, avec uniquement Vundef en sortie de bloc). Rem: en pratique, la "functional semantics" est définie pour être une "concrétisation" de la sémantique symbolique. Les définitions des deux sémantiques (symbolique et "functional") se font donc en simultanée.
-2. prouver la simulation BTL.FunctionalSemantics -> BTL.CFGSemantics (facile normalement: c'est du "less_undef lockstep").
-3. implémenter une passe BTL.CFGSemantics -> BTL.FunctionalSemantics.
- en gros: on implémente un vérificateur des infos de liveness.
- c'est la correction du "input_regs" qui garantit que la simulation est correct.
- La preuve devrait normalement être très similaire à RTLpathLivegenproof.
+Donc, dans un premier temps, la "functional semantics" encode/abstrait la notion de "liveout" pour le test d'exécution symbolique.
+Les définitions des deux sémantiques (symbolique et "functional") se font donc en simultanée.
**STATUS**
1. See [BTL.fsem] (Pour l'instant CFGSemantics => BTL.semantics et FunctionalSemantics => BTL.fsem)
+**TODO**
+
+1. prouver la simulation BTL.FunctionalSemantics -> BTL.CFGSemantics (facile normalement: c'est du "less_undef lockstep").
+2. implémenter une passe BTL.CFGSemantics -> BTL.FunctionalSemantics.
+ en gros: on implémente un vérificateur des infos de liveness.
+ c'est la correction du "input_regs" qui garantit que la simulation est correct.
+ La preuve devrait normalement être très similaire à RTLpathLivegenproof.
+
## "Basic" symbolic execution / symbolic simulation
We will implement a "basic" (e.g without rewriting rules) simulation test for BTL.FunctionalSemantics.
Dans un premier temps: pas besoin de "less_undef lockstep", on peut se contenter de tester l'égalité des registres de chaque côté: les registres hors liveout seront égaux à Vundef de chaque côté.
-**IMPLEM NOTE**
-
-- use Continuation Passing Style for an easy recursive generation of "all execution paths".
-- dans l'etat concret, prévoir un booleen qui indique la valeur symbolique par defaut des registres: deux cas, soit "Input" (valeur initiale du registre), soit "Sundef" (valeur Vundef).
+**STATUS**
-**CURRENT STATUS**
+- BTL_SEtheory: DONE
+ - model of symbolic execution in Continuation-Passing Style for BTL with "correctness" and "completness" thms wrt BTL.fsem
+ - high-level specification [sstate_simu] of "symbolic simulation" over iblocks (wrt BTL.fsem).
-- model of symbolic execution in Continuation-Passing Style for BTL with "correctness" and "completness" thms wrt BTL.semantics
+**TODO**
-**next steps**
-- preservation proof w.r.t BTL.fsem.
-- high-level specification of "symbolic simulation"
-- ...
+1. Verif du "scheduling" (aka analogue de RTLpathScheduler & RTLSchedulerproof).
+2. raffinement intermediaire avant le hash-consing ? ça permettrait de décomposer encore davantage la preuve ?
+Y a-t-il un moyen simple de faire le tests d'inclusion des fails potentiels à coût linéaire plutôt que quadratique (contrairement à RTLpath) ?
## Port of RTLpath optimizations to BTL