1. 13 Dec, 2017 1 commit
  2. 20 Sep, 2016 1 commit
  3. 27 Jul, 2016 1 commit
  4. 15 Jul, 2016 1 commit
  5. 14 Jul, 2016 1 commit
    • jarin's avatar
      [turbofan] Introduce explicit loop exits markers. · 7a61bbcf
      jarin authored
      This CL introduces explicit LoopExit control nodes at loop exits.
      We also attach explicit value renames (LoopExitMarker) and effect
      rename (LoopExitEffect) to each loop exit. This is in preparation
      to loop peeling, which will replace LoopExit, LoopExitMarker and
      LoopExitEffect with Merge, Phi and EffectPhi respectively.
      
      At the moment, we insert loop exit at every return, break,
      continue and locally caught throw. We do not yet handle
      uncaught throws (including error throws, such as ReferenceError).
      
      Review-Url: https://codereview.chromium.org/2140673007
      Cr-Commit-Position: refs/heads/master@{#37769}
      7a61bbcf
  6. 01 Apr, 2016 1 commit
  7. 10 Dec, 2015 1 commit
    • jarin's avatar
      [turbofan] Make MachineType a pair of enums. · bb2a830d
      jarin authored
      MachineType is now a class with two enum fields:
      - MachineRepresentation
      - MachineSemantic
      
      Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably:
      - register allocator now uses just the representation.
      - Phi and Select nodes only refer to representations.
      
      Review URL: https://codereview.chromium.org/1513543003
      
      Cr-Commit-Position: refs/heads/master@{#32738}
      bb2a830d
  8. 19 Jun, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Proper dead code elimination as regular reducer. · 733a2463
      bmeurer authored
      The three different concerns that the ControlReducer used to deal with
      are now properly separated into
      
        a.) DeadCodeElimination, which is a regular AdvancedReducer, that
            propagates Dead via control edges,
        b.) CommonOperatorReducer, which does strength reduction on common
            operators (i.e. Branch, Phi, and friends), and
        c.) GraphTrimming, which removes dead->live edges from the graph.
      
      This will make it possible to run the DeadCodeElimination together with
      other passes that actually introduce Dead nodes, i.e. typed lowering;
      and it opens the door for general inlining without two stage fix point
      iteration.
      
      To make the DeadCodeElimination easier and more uniform, we basically
      reverted the introduction of DeadValue and DeadEffect, and changed the
      Dead operator to produce control, value and effect. Note however that
      this is not a requirement, but merely a way to make dead propagation
      easier and more uniform. We could always go back and decide to have
      different Dead operators if some other change requires that.
      
      Note that there are several additional opportunities for cleanup now,
      i.e. OSR deconstruction could be a regular reducer now, and we don't
      need to use TheHole as dead value marker in the GraphReducer. And we can
      actually run the dead code elimination together with the other passes
      instead of using separate passes over the graph.  We will do this in
      follow up CLs.
      
      R=jarin@chromium.org, mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1193833002
      
      Cr-Commit-Position: refs/heads/master@{#29146}
      733a2463
  9. 18 Jun, 2015 1 commit
  10. 07 Apr, 2015 1 commit
  11. 30 Jan, 2015 3 commits
  12. 29 Jan, 2015 1 commit
  13. 20 Jan, 2015 2 commits