Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [MERGE] BTL into kvx-work (replacing RTLpath) | Léo Gourdin | 2021-09-01 | 1 | -3/+3 |
|\ | |||||
| * | Merge branch 'kvx-work' into BTL | Léo Gourdin | 2021-06-10 | 3 | -12/+15 |
| |\ | |||||
| * | | Dupmap bugfix and some advance in Livegen | Léo Gourdin | 2021-05-31 | 1 | -1/+1 |
| | | | |||||
| * | | todos | Léo Gourdin | 2021-05-18 | 1 | -1/+1 |
| | | | |||||
| * | | preparing compiler passes and ml oracles | Léo Gourdin | 2021-05-17 | 1 | -3/+3 |
| | | | |||||
* | | | Change "Tunneling" to "LTLTunneling" everywhere | Pierre Goutagny | 2021-06-17 | 1 | -1/+1 |
| | | | | | | | | | | | | To respect the symmetry between RTL- and LTL-Tunneling | ||||
* | | | Move rtl_tunneling to a more interesting place | Pierre Goutagny | 2021-06-15 | 1 | -1/+1 |
| | | | |||||
* | | | Factorise RTL Tunneling pass in compiler_expand | Pierre Goutagny | 2021-06-15 | 1 | -1/+3 |
| | | | |||||
* | | | Add RTL Tunneling as a pass | Pierre Goutagny | 2021-06-14 | 1 | -1/+2 |
| |/ |/| | |||||
* | | [BROKEN] Merge with v3.9 : something broken for __builtin_expect in ↵ | Cyril SIX | 2021-06-01 | 3 | -12/+15 |
|/ | | | | cfrontend/C2C.ml | ||||
* | insert CSE after constant propagation and before CSE2 | Sylvain Boulmé | 2021-02-10 | 1 | -0/+1 |
| | | | | => useful to have a nice generated code for || (and also probably &&) | ||||
* | Merge branch 'kvx-work' into kvx-work-merge3.8 | Cyril SIX | 2020-12-04 | 1 | -4/+7 |
|\ | | | | | | | | | | | Conflicts: Makefile configure | ||||
| * | Slight perf improvement | Cyril SIX | 2020-12-02 | 1 | -2/+2 |
| | | |||||
| * | merge nouveau tunneling | David Monniaux | 2020-11-19 | 1 | -1/+1 |
| | | |||||
| * | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepass | David Monniaux | 2020-11-19 | 1 | -1/+1 |
| |\ | |||||
| | * | Tunneling: improved elimination of conditions | Sylvain Boulmé | 2020-11-16 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the elimination of useless conditions done in the 2nd pass of the tunneling introduced some new "nop" instructions that were not eliminated. This commit solves this issue by anticipating the elimination of conditions in the 1st pass of the tunneling, the 2nd pass being unchanged. In case of cycles in the CFG, the full elimination of useless conditions may require several iterations in the 1st pass. Moreover, in the simulation proof, the measure counting the number of eliminated steps from each node, needs to be adapted according to the modifications on the 1st pass. Hence, this measure results from a quite complex fixpoint computation: proving its properties would be very difficult. This leads us to introduce an oracle, implementing the first pass and producing the expected measure. A certified verifier directly checks that the measure provided by the oracle satisfies the properties expected by the simulation proof. Introducing this oracle/verifier pair has here the following advantage: - the proof is simpler than the original one (e.g. having a certified union-find structure is no more necessary for this pass). - the oracle is very efficient, by using imperative data-structure to compute memoized fixpoints. At runtime, the overhead induced by the verifier computations (and the actual computation of the measure) seems largely compensated by the gains obtained through the imperative oracle. | ||||
| * | | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepass | David Monniaux | 2020-11-05 | 1 | -2/+3 |
| |\| | |||||
| * | | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepass | David Monniaux | 2020-11-03 | 1 | -1/+3 |
| |\ \ | |||||
| * \ \ | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepass | David Monniaux | 2020-10-27 | 1 | -43/+54 |
| |\ \ \ | |||||
| * \ \ \ | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepass | David Monniaux | 2020-10-18 | 1 | -2/+3 |
| |\ \ \ \ | |||||
| * \ \ \ \ | Merge branch 'kvx-work' into mppa-RTLpathSE | Cyril SIX | 2020-05-28 | 2 | -0/+183 |
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapting the new mppa-RTLpathSE passes into the new Compiler.vexpand framework | ||||
* | \ \ \ \ \ | Merge branch 'master' (Absint 3.8) into kvx-work-merge3.8 | David Monniaux | 2020-11-18 | 1 | -1/+1 |
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | | | |||||
| * | | | | | | Use Hashtbl.find_opt. | Bernhard Schommer | 2020-06-28 | 1 | -1/+1 |
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | Replace the pattern `try Some (Hashtbl.find ...) with Not_found -> None` by a call to the function Hashtbl.find_opt. | ||||
* | | | | / | move loop rotate down | David Monniaux | 2020-11-04 | 1 | -4/+5 |
| |_|_|_|/ |/| | | | | |||||
* | | | | | Loop Rotate with -flooprotate | Cyril SIX | 2020-11-03 | 1 | -0/+2 |
| |_|_|/ |/| | | | |||||
* | | | | Splitting Duplicate in several passes | Cyril SIX | 2020-10-27 | 1 | -40/+51 |
| |_|/ |/| | | |||||
* | | | reorder phases | David Monniaux | 2020-10-16 | 1 | -2/+3 |
| | | | |||||
* | | | Changing duplicate verifier to be non optional | Cyril SIX | 2020-10-09 | 1 | -1/+1 |
| |/ |/| | |||||
* | | automatic date in the html index | Sylvain Boulmé | 2020-05-28 | 1 | -0/+8 |
| | | |||||
* | | add a renumber phase | David Monniaux | 2020-04-30 | 1 | -0/+1 |
| | | |||||
* | | run a separate CSE3 for LICM | David Monniaux | 2020-04-24 | 1 | -1/+3 |
| | | |||||
* | | sync with licm | David Monniaux | 2020-04-23 | 1 | -1/+1 |
| | | |||||
* | | cbn and copyright | David Monniaux | 2020-04-22 | 1 | -0/+10 |
| | | |||||
* | | use cbn in T instead of simpl in T | David Monniaux | 2020-04-22 | 1 | -1/+1 |
| | | |||||
* | | automated writing Compiler.v | David Monniaux | 2020-04-22 | 1 | -8/+79 |
| | | |||||
* | | generate mkpass | David Monniaux | 2020-04-21 | 1 | -1/+13 |
| | | |||||
* | | Require autogen | David Monniaux | 2020-04-21 | 1 | -8/+22 |
| | | |||||
* | | begin scripting the Compiler.v file | David Monniaux | 2020-04-21 | 1 | -0/+62 |
|/ | |||||
* | Revise the "bench" entries of the test suite | Xavier Leroy | 2019-09-17 | 1 | -0/+101 |
| | | | | | | | | Initially, the "bench" entries of the test suite used a "xtime" utility developed in-house and not publically available. This commit adds a version of "xtime" written in OCaml (tools/xtime.ml) and updates the "bench" entries of the test/*/Makefile to use it. | ||||
* | ndfun: add support for guards on patterns | Xavier Leroy | 2019-08-07 | 1 | -5/+16 |
| | | | | | | Syntax is "pat ?? bexpr => action". The whole case is selected only when "pat" matches and then "bexpr" evaluates to "true". | ||||
* | Extend the modorder tool to handle Coq files as well (#54) | Bernhard Schommer | 2018-02-08 | 1 | -7/+9 |
| | | | | | | This is useful to e.g. identify the .vo files from CompCert that a clightgen-generated .v file needs. Also: the "result" field of the record type is now initialized with the LHS of the dependency, not the RHS. It doesn't matter because the result field is unused, but it makes more sense now. | ||||
* | Updated PR by removing whitespaces. Bug 17450. | Bernhard Schommer | 2015-10-20 | 1 | -3/+3 |
| | |||||
* | Removed the recdepend again and replaced it by a builtin Make function. | Bernhard Schommer | 2015-02-27 | 1 | -206/+0 |
| | |||||
* | Updated the recdepend tool to avoid printing of ./ at the begining and ↵ | Bernhard Schommer | 2015-02-25 | 1 | -50/+46 |
| | | | | printing duplicated -I flags. | ||||
* | Added a small ocamlfile that calls ocamlfind recursivly over a given directory. | Bernhard Schommer | 2015-02-24 | 1 | -0/+210 |
| | |||||
* | Use String.map instead of reimplementing it ourselves. | Xavier Leroy | 2014-11-22 | 1 | -5/+18 |
| | | | | Avoids warnings with 4.02. | ||||
* | Replace ocamlbuild by a second-stage makefile to compile the OCaml code and ↵ | Xavier Leroy | 2014-11-22 | 1 | -0/+112 |
| | | | | | | produce the executables. configure: add check for GNU make. | ||||
* | Merge of the nonstrict-ops branch: | xleroy | 2012-01-14 | 1 | -0/+231 |
- Most RTL operators now evaluate to Some Vundef instead of None when undefined behavior occurs. - More aggressive instruction selection. - "Bertotization" of pattern-matchings now implemented by a proper preprocessor. - Cast optimization moved to cfrontend/Cminorgen; removed backend/CastOptim. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1790 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e |