Skip to content
Snippets Groups Projects
  1. Jan 14, 2016
  2. Mar 18, 2015
    • Erwan Jahier's avatar
      lic2soc: try a few optimisation wrt Soc.gao scheduling and test opening. · 7d0da0b8
      Erwan Jahier authored
      Indeed, in order to sort Soc.gao, I currently process in 3 stages ;
      1. compute a total ordering of Actions.t according to the deps
      2. transform Actions.t into Soc.gao (List.map)
      3. factorize Soc.gao by looking at consecutive gao that have the same guard
      
      With this change, between steps 1 and 2, I reorder the list of actions
      so that group of independent actions are sorted according to their
      clock. The idea is of course to provide to step 3 more opportunities
      of factorization.
      
      The result is not very convincing yet.
      
      I've also tried to sort the actions wrt their clock before performing
      the toposort. Seems not too bad.
      
      I've kept the old behavior by default though.
      7d0da0b8
  3. Jan 19, 2015
    • Erwan Jahier's avatar
      Add a --optimize-ite/-oite option that transforms if/then/else into merge when possible. · d783b03e
      Erwan Jahier authored
      Indeed it is possible when each branch of the ite updates no memory.
      This is done in the new L2lOptimIte module.
      
      For the time being, it does detect when the node has no memory. It
      only looks at the declaration: nodes have memory, and not functions.
      
      I should infer that information and raise warnings or errors if what
      I infer is not compatible with waht is declared (will come later).
      
      Also split ActionsDep into ActionsDep and Action.
      
      Also fix a bug in L2lsplit where deeply nested (>2) merge were not
      splitted.
      d783b03e
  4. Jan 07, 2015
    • Erwan Jahier's avatar
      Merge does not generate soc anymore ! · fcf73b92
      Erwan Jahier authored
      Also fix a bug in Lic2soc.make_e2a_elt where some deps and some
      actions were lost. Actually, this bug ought to be triggered only with
      nested calls. So this affects only programs executed via the
      -knc/-keep-nested-calls option. and -2c is not supposed to work in
      conjunction with -knc ! Hence this fix does not fix anything. But
      still it fixes potentially future code if I (or someone else) decide
      to handle nested calls in the lic one day.
      fcf73b92
  5. Oct 06, 2014
  6. Aug 14, 2014
    • Erwan Jahier's avatar
      lic2soc: fix the translation of the current operator into SOC. · d3061085
      Erwan Jahier authored
      nb : the -exec mode was working because I did not use the generated soc,
      which was completely wrong.
      
      Note that to do that, I have modified the CURRENT variant of
      Lic.val_exp, to attach it the clock the current holds on. Indeed, the
      clock is mandatory to generated correct code...
      
      In an ideal world, this clock information may have explicitely been
      set by the user ("current(clk_of_X,X)" instead of "current(X)"), but
      for historical reason, it is not the case.
      
      Hence, this information is added as soon as it is available, namely,
      during clock checking.
      d3061085
  7. Jul 09, 2014
  8. May 21, 2014
  9. Jan 22, 2014
  10. Dec 11, 2013
    • Erwan Jahier's avatar
      Rewrite the topological sort of actions. · 612d8213
      Erwan Jahier authored
      The main difference is that I use a map instead of list to store
      visited nodes.  The compilation time of normal.ec is divided by 2!!
      (35s->15s)
      
      We do not really see the difference in the time of the non-reg tests
      since the execution of normal.ec still exceeds the 10s timeouts.
      612d8213
  11. May 21, 2013
  12. May 16, 2013
  13. Apr 17, 2013
  14. Apr 12, 2013
    • Erwan Jahier's avatar
      lus2lic is now working from ldbg and ltop. · fa71e77c
      Erwan Jahier authored
      As far as ldbg is concerned, it only traces the toplevel node, at
      call event.
      
      Note that I needed to rename quite a lot of modules to avoid name clashes
      between lus2lic.a and ltop.
      
      I've also merged the Verbose module with the one of Lutin so that
      they can be shared (there were sharing 95% already).
      fa71e77c
  15. Apr 08, 2013
    • Erwan Jahier's avatar
      Some work to prepare the merge with the lurette git repo. · 5316f18a
      Erwan Jahier authored
      I took the data type definition from SocExecValue to define a Data
      module that is a strict extension of the Lutin Data module.
      
      The duplicated Genlex module is now also identical to the one of
      Lurette.
      
      Quite boring, but simple thanks to the ocaml type system.
      5316f18a
  16. Apr 03, 2013
  17. Mar 21, 2013
  18. Mar 20, 2013
  19. Mar 19, 2013
  20. Feb 25, 2013
Loading