Compilers principles, techniques, and tools, 1986. ,
Control flow analysis, Proceedings of a Symposium on Compiler Optimization, pp.1-19, 1970. ,
Modern Compiler Implementation in ML, 2004. ,
DOI : 10.1017/CBO9780511811449
Formal Verification of an SSA-Based Middle-End for CompCert, ACM Transactions on Programming Languages and Systems, vol.36, issue.1, pp.1-35, 2014. ,
DOI : 10.1007/s10817-007-9096-8
URL : https://hal.archives-ouvertes.fr/hal-01097677
A Structured Approach to Proving Compiler Optimizations Based on Dataflow Analysis, Types for Proofs and Programs, pp.66-81, 2004. ,
DOI : 10.1007/11617990_5
URL : https://hal.archives-ouvertes.fr/inria-00289549
Validating Dominator Trees for a Fast, Verified Dominance Test, Proc. of ITP'15, 2015. ,
DOI : 10.1007/978-3-319-22102-1_6
URL : https://hal.archives-ouvertes.fr/hal-01193281
Formal verification of dead code elimination in Isabelle/HOL, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05), pp.200-209, 2005. ,
DOI : 10.1109/SEFM.2005.20
Optimizing Code Generation from SSA Form: A Comparison Between Two Formal Correctness Proofs in Isabelle/HOL, Proc. of COCV'05, pp.33-51, 2005. ,
DOI : 10.1016/j.entcs.2005.02.042
Revisiting Out-of-SSA Translation for Correctness, Code Quality and Efficiency, 2009 International Symposium on Code Generation and Optimization, pp.114-125, 2009. ,
DOI : 10.1109/CGO.2009.19
URL : https://hal.archives-ouvertes.fr/inria-00349925
Dupont de Dine hin, and F. Rastello. Fast liveness checking for SSA-form programs, Proc. of CGO'08, pp.35-44, 2008. ,
Register allocation and spill complexity under ssa, 2005. ,
URL : https://hal.archives-ouvertes.fr/hal-02102197
Simple and Efficient Construction of Static Single Assignment Form, Proc. of CC'13, pp.102-122, 2013. ,
DOI : 10.1007/978-3-642-37051-9_6
Firm?a graph-based intermediate representation, 2011. ,
Practical improvements to the construction and destruction of static single assignment form, Software: Practice and Experience, vol.28, issue.8, pp.859-881, 1998. ,
DOI : 10.1002/(SICI)1097-024X(19980710)28:8<859::AID-SPE188>3.0.CO;2-8
, Value numbering. SPE, pp.701-724, 1997.
Verified construction of static single assignment form, Proceedings of the 25th International Conference on Compiler Construction, CC 2016, pp.67-76, 2016. ,
DOI : 10.1145/2491956.2462164
A verified implementation of ML, 2012. ,
Register allocation via coloring, Computer Languages, vol.6, issue.1, pp.47-57, 1981. ,
DOI : 10.1016/0096-0551(81)90048-5
Global code motion / global value numbering, Proc. of PLDI'95, pp.246-257, 1995. ,
DOI : 10.1145/207110.207154
Combining analyses, combining optimizations, ACM Transactions on Programming Languages and Systems, vol.17, issue.2, pp.181-196, 1995. ,
DOI : 10.1145/201059.201061
URL : https://scholarship.rice.edu/bitstream/1911/16807/1/9610626.PDF
A simple graph-based intermediate representation, Proc. of IR'95, pp.35-49, 1995. ,
DOI : 10.1145/202530.202534
, , 2012.
A fast, simple dominance algorithm, 2006. ,
, Site de l'assistant de preuve Coq, 1999.
Efficiently computing static single assignment form and the control dependence graph, Fernandez de Retana. Mechanizing Conventional SSA for a Verified Destruction with Coalescing Proc. of CC'16, CC 2016, pp.451-490, 1991. ,
DOI : 10.1145/115372.115320
URL : http://grothoff.org/christian/teaching/2007/3353/papers/ssa.pdf
Semantic reasoning about the sea of nodes, Proceedings of the 27th International Conference on Compiler Construction , CC 2018, 2018. ,
DOI : 10.1145/3178372.3179503
URL : https://hal.archives-ouvertes.fr/hal-01723236
Verifying Fast and Sparse SSA-Based Optimizations in Coq, Proc. of CC'15, pp.233-252, 2015. ,
DOI : 10.1007/978-3-662-46663-6_12
URL : https://hal.archives-ouvertes.fr/hal-01110779
An intermediate representation for speculative optimizations in a dynamic compiler, Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages, VMIL '13, pp.1-10, 2013. ,
DOI : 10.1145/2542142.2542143
Using the SSA-Form in a Code Generator, Proc. of CC'14, pp.1-17, 2014. ,
DOI : 10.1007/978-3-642-54807-9_1
Code size optimization for embedded processors, 2004. ,
The program dependence graph and its use in optimization, ACM Trans. Program. Lang. Syst, pp.319-349, 1987. ,
Register Allocation for Programs in SSA-Form, Proc. of CC'06, pp.247-262, 2006. ,
DOI : 10.1007/11575467_21
URL : https://link.springer.com/content/pdf/10.1007%2F11688839_20.pdf
Construction of thinned gated single-assignment form, Languages and Compilers for Parallel Computing, pp.477-499, 1994. ,
DOI : 10.1007/3-540-57659-2_28
Postpass Code Optimization of Pipeline Constraints, ACM Transactions on Programming Languages and Systems, vol.5, issue.3, pp.422-448, 1983. ,
DOI : 10.1145/2166.357217
, Hol interactive theorem prover, 2012. https :// hol-theorem-prover.org
, Site de l'assistant de preuve Isabelle, 1986.
Combined Code Motion and Register Allocation Using the Value State Dependence Graph, Proc. of CC'03, CC 2003, pp.1-16, 2003. ,
DOI : 10.1007/3-540-36579-6_1
URL : https://link.springer.com/content/pdf/10.1007%2F3-540-36579-6_1.pdf
Effective null pointer check elimination utilizing hardware trap, Proc. of ASPLOS'00, pp.139-149, 2000. ,
DOI : 10.1145/378995.379234
A correspondence between continuation passing style and static single assignment form, Papers from the 1995 ACM SIGPLAN Workshop on Intermediate Representations, pp.13-22, 1995. ,
DOI : 10.1145/202529.202532
A unified approach to global program optimization, Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages , POPL '73, pp.194-206, 1973. ,
DOI : 10.1145/512927.512945
Array SSA form and its use in parallelization, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '98, pp.107-120, 1998. ,
DOI : 10.1145/268946.268956
A graph-based higher-order intermediate representation, 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pp.202-212, 2015. ,
DOI : 10.1109/CGO.2015.7054200
A fast algorithm for finding dominators in a flowgraph, ACM Transactions on Programming Languages and Systems, vol.1, issue.1, pp.121-141, 1979. ,
DOI : 10.1145/357062.357071
A formally verified compiler back-end. JAR, pp.363-446, 2009. ,
DOI : 10.1007/s10817-009-9155-4
URL : https://hal.archives-ouvertes.fr/inria-00360768
Peephole optimization, Communications of the ACM, vol.8, issue.7, pp.443-444, 1965. ,
DOI : 10.1145/364995.365000
Verified peephole optimizations for compcert, Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '16, pp.448-461, 2016. ,
DOI : 10.1145/2908080.2908109
Proof-carrying code, Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '97, pp.106-119, 1997. ,
DOI : 10.1145/263699.263712
Translation validation for an optimizing compiler, Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, PLDI '00, pp.83-94, 2000. ,
DOI : 10.1145/349299.349314
Principles of Program Analysis, 1999. ,
DOI : 10.1007/978-3-662-03811-6
, Go nilcheck elimination source code, 2017. https
The java hotspottm server compiler, go1.9/src Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium, pp.1-1, 2001. ,
Translation validation, Tools and Algorithms for the Construction and Analysis of Systems, pp.151-166, 1998. ,
DOI : 10.1007/BFb0054170
Tilting at Windmills with Coq: Formal Verification of a Compilation Algorithm for Parallel Moves, Journal of Automated Reasoning, vol.13, issue.12, pp.307-326, 2008. ,
DOI : 10.1007/s10817-007-9096-8
URL : https://hal.archives-ouvertes.fr/inria-00289709
Validating Register Allocation and Spilling, Compiler Construction, pp.224-243, 2010. ,
DOI : 10.1007/978-3-642-11970-5_13
URL : https://hal.archives-ouvertes.fr/inria-00529841
Verified Spilling and Translation Validation with??Repair, Interactive Theorem Proving, pp.427-443, 2017. ,
DOI : 10.1145/2951913.2951924
Global value numbers and redundant computations, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '88, pp.12-27, 1988. ,
DOI : 10.1145/73560.73562
A Linear First-Order Functional Intermediate Language for Verified Compilers, Interactive Theorem Proving, pp.344-358, 2015. ,
DOI : 10.1007/978-3-319-22102-1_23
URL : http://arxiv.org/pdf/1503.08665
Static program analysis based on virtual register renaming, 2006. ,
, Raisonnement sémantique sur sea of nodes, 2018.
Translating Out of Static Single Assignment Form, Proc. of SAS'99, pp.194-210, 1999. ,
DOI : 10.1007/3-540-48294-6_13
A new verified compiler backend for cakeml, Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016, pp.60-73, 2016. ,
DOI : 10.1145/2951913.2951924
URL : http://kar.kent.ac.uk/55687/7/paper.pdf
, Homepage of the Go project, 2012. https ://golang.org
, Homepage of the LLVM project, 2003.
, Static single assignment book, 2015.
Formal verification of translation validators : A case study on instruction scheduling optimizations, Proceedings of the 35th ACM Symposium on Principles of Programming Languages (POPL'08), pp.17-27, 2008. ,
URL : https://hal.archives-ouvertes.fr/inria-00289540
Evaluating value-graph translation validation for LLVM, Proc. of PLDI'11, pp.295-305, 2011. ,
DOI : 10.1145/2345156.1993533
URL : https://dash.harvard.edu/bitstream/1/4762396/1/pldi84-tristan.pdf
Verified validation of lazy code motion, Proc. of PLDI'09, pp.316-326, 2009. ,
DOI : 10.1145/1543135.1542512
URL : https://hal.archives-ouvertes.fr/inria-00415865
Constant propagation with conditional branches, 1991. ,
DOI : 10.1145/318593.318659
URL : http://www.cs.wustl.edu/~cytron/cse531/Resources/Papers/cprop.pdf
Finding and understanding bugs in C compilers, Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '11, pp.283-294, 2011. ,
Formalizing an SSA-based compiler for verified advanced program transformations, 2013. ,
DOI : 10.1145/2103656.2103709
URL : http://www.cis.upenn.edu/%7Estevez/papers/ZNMZ12.pdf
Formal verification of SSA-based optimizations for LLVM, Proc. of PLDI'13, pp.175-186, 2013. ,
Formalizing the LLVM intermediate representation for verified program transformation, Proc. of POPL'12, pp.427-440, 2012. ,