aboutsummaryrefslogtreecommitdiffstats
path: root/tools/compiler_expand.ml
Commit message (Collapse)AuthorAgeFilesLines
* [MERGE] BTL into kvx-work (replacing RTLpath)Léo Gourdin2021-09-011-3/+3
|\
| * Dupmap bugfix and some advance in LivegenLéo Gourdin2021-05-311-1/+1
| |
| * todosLéo Gourdin2021-05-181-1/+1
| |
| * preparing compiler passes and ml oraclesLéo Gourdin2021-05-171-3/+3
| |
* | Change "Tunneling" to "LTLTunneling" everywherePierre Goutagny2021-06-171-1/+1
| | | | | | | | To respect the symmetry between RTL- and LTL-Tunneling
* | Move rtl_tunneling to a more interesting placePierre Goutagny2021-06-151-1/+1
| |
* | Factorise RTL Tunneling pass in compiler_expandPierre Goutagny2021-06-151-1/+3
| |
* | Add RTL Tunneling as a passPierre Goutagny2021-06-141-1/+2
|/
* insert CSE after constant propagation and before CSE2Sylvain Boulmé2021-02-101-0/+1
| | | | => useful to have a nice generated code for || (and also probably &&)
* Slight perf improvementCyril SIX2020-12-021-2/+2
|
* merge nouveau tunnelingDavid Monniaux2020-11-191-1/+1
|
* Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepassDavid Monniaux2020-11-191-1/+1
|\
| * Tunneling: improved elimination of conditionsSylvain Boulmé2020-11-161-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-prepassDavid Monniaux2020-11-051-2/+3
|\|
| * move loop rotate downDavid Monniaux2020-11-041-4/+5
| |
* | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepassDavid Monniaux2020-11-031-1/+3
|\|
| * Loop Rotate with -flooprotateCyril SIX2020-11-031-0/+2
| |
* | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepassDavid Monniaux2020-10-271-43/+54
|\|
| * Splitting Duplicate in several passesCyril SIX2020-10-271-40/+51
| |
* | Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepassDavid Monniaux2020-10-181-2/+3
|\|
| * reorder phasesDavid Monniaux2020-10-161-2/+3
| |
| * Changing duplicate verifier to be non optionalCyril SIX2020-10-091-1/+1
| |
* | Merge branch 'kvx-work' into mppa-RTLpathSECyril SIX2020-05-281-1/+4
|/ | | | | Adapting the new mppa-RTLpathSE passes into the new Compiler.vexpand framework
* add a renumber phaseDavid Monniaux2020-04-301-0/+1
|
* run a separate CSE3 for LICMDavid Monniaux2020-04-241-1/+3
|
* sync with licmDavid Monniaux2020-04-231-1/+1
|
* cbn and copyrightDavid Monniaux2020-04-221-0/+10
|
* use cbn in T instead of simpl in TDavid Monniaux2020-04-221-1/+1
|
* automated writing Compiler.vDavid Monniaux2020-04-221-8/+79
|
* generate mkpassDavid Monniaux2020-04-211-1/+13
|
* Require autogenDavid Monniaux2020-04-211-8/+22
|
* begin scripting the Compiler.v fileDavid Monniaux2020-04-211-0/+62