├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── bin └── coq-compile ├── docs ├── .gitignore ├── bib.bib ├── compiler.tex └── proposal.tex ├── src ├── Makefile ├── coq │ ├── AlphaEquivCps.v │ ├── AlphaEquivCpsK.v │ ├── Analyze │ │ ├── AAMach.v │ │ ├── AbstractDomains.v │ │ ├── AbstractInterpCpsK.v │ │ ├── CFA0.v │ │ ├── OccurCps.v │ │ ├── Reachability.v │ │ └── TestReachability.v │ ├── CloConvK.v │ ├── CodeGen.v │ ├── CodeGenCps.v │ ├── Compile.v │ ├── CompileDriver.v │ ├── CompileTest.v │ ├── Cps.v │ ├── Cps2CpsK.v │ ├── CpsCommon.v │ ├── CpsK.v │ ├── CpsK2Cps.v │ ├── CpsK2Low.v │ ├── CpsKConvert.v │ ├── CpsKExamples.v │ ├── CpsKIO.v │ ├── CpsKSemantics.v │ ├── CpsKUtil.v │ ├── CpsUtil.v │ ├── Env.v │ ├── ExtractTypes.v │ ├── LLVM.v │ ├── Lambda.v │ ├── Low.v │ ├── Makefile │ ├── Opt │ │ ├── AlphaCvtCpsK.v │ │ ├── ContificationCpsK.v │ │ ├── CopyPropCpsK.v │ │ ├── CseCpsK.v │ │ ├── DeadCodeCpsK.v │ │ ├── ReduceCpsK.v │ │ └── Rewrite.v │ ├── Optimize.v │ ├── Parse.v │ ├── Test.v │ └── TraceMonad.v ├── lib │ ├── IO.v │ ├── IO_compile.v │ ├── IO_ml.v │ └── Makefile ├── ml │ ├── .gitignore │ ├── Extraction.v │ ├── Makefile │ ├── all.itarget │ ├── compile.ml │ ├── coqIO.ml │ ├── coqIO.mli │ ├── coqUtil.ml │ ├── extraction.ml │ └── interp.ml └── rt │ ├── .gitignore │ ├── Makefile │ ├── coqio.c │ ├── coqrtbegin.c │ ├── data.c │ ├── include │ ├── coqrt.h │ ├── data.h │ ├── gc.h │ ├── io.h │ └── shadowstack.h │ ├── semispacegc.c │ └── shadowstack.c ├── test ├── .gitignore ├── Compiler.v ├── Even.v ├── Fact.v ├── HelloWorld.v ├── IOFact.v ├── IONat.v ├── Ident.v └── Makefile └── tools ├── deps.py ├── dir-locals.el └── setup.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/README.md -------------------------------------------------------------------------------- /bin/coq-compile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/bin/coq-compile -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/docs/.gitignore -------------------------------------------------------------------------------- /docs/bib.bib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/docs/bib.bib -------------------------------------------------------------------------------- /docs/compiler.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/docs/compiler.tex -------------------------------------------------------------------------------- /docs/proposal.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/docs/proposal.tex -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/Makefile -------------------------------------------------------------------------------- /src/coq/AlphaEquivCps.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/AlphaEquivCps.v -------------------------------------------------------------------------------- /src/coq/AlphaEquivCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/AlphaEquivCpsK.v -------------------------------------------------------------------------------- /src/coq/Analyze/AAMach.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/AAMach.v -------------------------------------------------------------------------------- /src/coq/Analyze/AbstractDomains.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/AbstractDomains.v -------------------------------------------------------------------------------- /src/coq/Analyze/AbstractInterpCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/AbstractInterpCpsK.v -------------------------------------------------------------------------------- /src/coq/Analyze/CFA0.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/CFA0.v -------------------------------------------------------------------------------- /src/coq/Analyze/OccurCps.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/OccurCps.v -------------------------------------------------------------------------------- /src/coq/Analyze/Reachability.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/Reachability.v -------------------------------------------------------------------------------- /src/coq/Analyze/TestReachability.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Analyze/TestReachability.v -------------------------------------------------------------------------------- /src/coq/CloConvK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CloConvK.v -------------------------------------------------------------------------------- /src/coq/CodeGen.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CodeGen.v -------------------------------------------------------------------------------- /src/coq/CodeGenCps.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CodeGenCps.v -------------------------------------------------------------------------------- /src/coq/Compile.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Compile.v -------------------------------------------------------------------------------- /src/coq/CompileDriver.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CompileDriver.v -------------------------------------------------------------------------------- /src/coq/CompileTest.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CompileTest.v -------------------------------------------------------------------------------- /src/coq/Cps.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Cps.v -------------------------------------------------------------------------------- /src/coq/Cps2CpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Cps2CpsK.v -------------------------------------------------------------------------------- /src/coq/CpsCommon.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsCommon.v -------------------------------------------------------------------------------- /src/coq/CpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsK.v -------------------------------------------------------------------------------- /src/coq/CpsK2Cps.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsK2Cps.v -------------------------------------------------------------------------------- /src/coq/CpsK2Low.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsK2Low.v -------------------------------------------------------------------------------- /src/coq/CpsKConvert.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsKConvert.v -------------------------------------------------------------------------------- /src/coq/CpsKExamples.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsKExamples.v -------------------------------------------------------------------------------- /src/coq/CpsKIO.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsKIO.v -------------------------------------------------------------------------------- /src/coq/CpsKSemantics.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsKSemantics.v -------------------------------------------------------------------------------- /src/coq/CpsKUtil.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsKUtil.v -------------------------------------------------------------------------------- /src/coq/CpsUtil.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/CpsUtil.v -------------------------------------------------------------------------------- /src/coq/Env.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Env.v -------------------------------------------------------------------------------- /src/coq/ExtractTypes.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/ExtractTypes.v -------------------------------------------------------------------------------- /src/coq/LLVM.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/LLVM.v -------------------------------------------------------------------------------- /src/coq/Lambda.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Lambda.v -------------------------------------------------------------------------------- /src/coq/Low.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Low.v -------------------------------------------------------------------------------- /src/coq/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Makefile -------------------------------------------------------------------------------- /src/coq/Opt/AlphaCvtCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/AlphaCvtCpsK.v -------------------------------------------------------------------------------- /src/coq/Opt/ContificationCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/ContificationCpsK.v -------------------------------------------------------------------------------- /src/coq/Opt/CopyPropCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/CopyPropCpsK.v -------------------------------------------------------------------------------- /src/coq/Opt/CseCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/CseCpsK.v -------------------------------------------------------------------------------- /src/coq/Opt/DeadCodeCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/DeadCodeCpsK.v -------------------------------------------------------------------------------- /src/coq/Opt/ReduceCpsK.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/ReduceCpsK.v -------------------------------------------------------------------------------- /src/coq/Opt/Rewrite.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Opt/Rewrite.v -------------------------------------------------------------------------------- /src/coq/Optimize.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Optimize.v -------------------------------------------------------------------------------- /src/coq/Parse.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Parse.v -------------------------------------------------------------------------------- /src/coq/Test.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/Test.v -------------------------------------------------------------------------------- /src/coq/TraceMonad.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/coq/TraceMonad.v -------------------------------------------------------------------------------- /src/lib/IO.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/lib/IO.v -------------------------------------------------------------------------------- /src/lib/IO_compile.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/lib/IO_compile.v -------------------------------------------------------------------------------- /src/lib/IO_ml.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/lib/IO_ml.v -------------------------------------------------------------------------------- /src/lib/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/lib/Makefile -------------------------------------------------------------------------------- /src/ml/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/.gitignore -------------------------------------------------------------------------------- /src/ml/Extraction.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/Extraction.v -------------------------------------------------------------------------------- /src/ml/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/Makefile -------------------------------------------------------------------------------- /src/ml/all.itarget: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/all.itarget -------------------------------------------------------------------------------- /src/ml/compile.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/compile.ml -------------------------------------------------------------------------------- /src/ml/coqIO.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/coqIO.ml -------------------------------------------------------------------------------- /src/ml/coqIO.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/coqIO.mli -------------------------------------------------------------------------------- /src/ml/coqUtil.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/coqUtil.ml -------------------------------------------------------------------------------- /src/ml/extraction.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/extraction.ml -------------------------------------------------------------------------------- /src/ml/interp.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/ml/interp.ml -------------------------------------------------------------------------------- /src/rt/.gitignore: -------------------------------------------------------------------------------- 1 | *.ll 2 | *.o 3 | *.bc -------------------------------------------------------------------------------- /src/rt/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/Makefile -------------------------------------------------------------------------------- /src/rt/coqio.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/coqio.c -------------------------------------------------------------------------------- /src/rt/coqrtbegin.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/coqrtbegin.c -------------------------------------------------------------------------------- /src/rt/data.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/data.c -------------------------------------------------------------------------------- /src/rt/include/coqrt.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/include/coqrt.h -------------------------------------------------------------------------------- /src/rt/include/data.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/include/data.h -------------------------------------------------------------------------------- /src/rt/include/gc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/include/gc.h -------------------------------------------------------------------------------- /src/rt/include/io.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/include/io.h -------------------------------------------------------------------------------- /src/rt/include/shadowstack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/include/shadowstack.h -------------------------------------------------------------------------------- /src/rt/semispacegc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/semispacegc.c -------------------------------------------------------------------------------- /src/rt/shadowstack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/src/rt/shadowstack.c -------------------------------------------------------------------------------- /test/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/.gitignore -------------------------------------------------------------------------------- /test/Compiler.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/Compiler.v -------------------------------------------------------------------------------- /test/Even.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/Even.v -------------------------------------------------------------------------------- /test/Fact.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/Fact.v -------------------------------------------------------------------------------- /test/HelloWorld.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/HelloWorld.v -------------------------------------------------------------------------------- /test/IOFact.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/IOFact.v -------------------------------------------------------------------------------- /test/IONat.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/IONat.v -------------------------------------------------------------------------------- /test/Ident.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/Ident.v -------------------------------------------------------------------------------- /test/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/test/Makefile -------------------------------------------------------------------------------- /tools/deps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/tools/deps.py -------------------------------------------------------------------------------- /tools/dir-locals.el: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/tools/dir-locals.el -------------------------------------------------------------------------------- /tools/setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coq-ext-lib/coq-compile/HEAD/tools/setup.sh --------------------------------------------------------------------------------