Published September 21, 2022
| Version 2.0.0
Software
Open
CompCertGSA
Authors/Creators
- 1. Imperial College London
- 2. Université Rennes 1, IRISA
Description
CompCert GSA
This repository contains the implementation of Gated-SSA in CompCertSSA.
Files
GSA semantics
./midend/GSA.v: Syntax and semantics for GSA.
Generation of GSA
./midend/GSAvalid.v: Translation from SSA to GSA../midend/GSAvalidspec.v: Specification of translation../midend/GSAvalidproof.v: Proof of semantics preservation for translation../midend/GSApredicate.v: The implementation of three-valued logic predicates../midend/GSApaths.v: Implementation of Tarjan’s path algorithm../midend/RTLloopgen.v,./midend/RTLloopgenproof.v: Loop normalisation using noops../midend/GSAcommon.v: Common shared proofs and definitions../midend/GSASat.v: A fallback implementation of a SAT solver.
SMTCoq integration
./midend/GSAhashtree.v: Hashing used to implement sharing of formulas and atoms for SMTCoq../midend/GSAsmtpredicate.v: Solving three-valued logic predicates using an SMT solver through SMTCoq.
Building GSA
Dependencies
- Coq 8.13.2
- veriT: This exact version is needed: https://www.lri.fr/~keller/Documents-recherche/Smtcoq/veriT9f48a98.tar.gz To install : - untar the archive - launch
./configurescript and check that it succeeds - launchmake. Some versions ofclangmight fail, in which case you need to add the-Wno-implicit-function-declarationoption to it. This can be done by editingMakefile.config- add theveriTexecutable to your path. - Ocaml dependencies: menhir, num (v.1.4), zarith (v.1.12).
Building
First build SMTCoq:
cd smtcoq/src
make -j7
cd extraction
make # Important: not parallel
Then build CompCertGSA, as you would build CompCert
cd ../../.. # or back to root directory
./configure [your-architecture] # we only support the x86 backend (e.g. x86_64-linux)
make -j7
Compiling with GSA
The GSA intermediate representation can be enabled with -ssa gsa. Then, the GSA representation can be printed out using -dgsa, or the GSA will be translated back to SSA and finally compiled to an executable.
If there are linktime errors, the CompCert library might have to be included with -L./runtime for example.
The following command is expected to finish in around 20s.
./ccomp -ssa gsa -dgsa ./test/c/qsort.c
The GSA representation will then be available as qsort.gsa.0.
Files
Files
(4.0 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:9c6997eec463aa5a030a0769c534736e
|
4.0 MB | Download |