1. 17 Oct, 2016 1 commit
  2. 19 Aug, 2016 1 commit
  3. 08 Aug, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Add initial support for growing stores. · e6822a83
      bmeurer authored
      Introduce a dedicated MaybeGrowFastElements simplified operator, which
      tries to grow a fast elements backing store for a given element that
      should be added to an array/object. Use that to lower a growing keyed
      store to a sequence of
      
       1) check index is a valid array index,
       2) check stored value,
       3) maybe grow elements backing store (and deoptimize if it would
          normalize), and
       4) store the actual element.
      
      The actual growing is done by two dedicated GrowFastDoubleElements
      and GrowFastSmiOrObjectElements builtins, which are very similar to
      the GrowArrayElementsStub that is used by Crankshaft.
      
      Drive-by-fix: Turn CopyFixedArray into CopyFastSmiOrObjectElements
      builtin, similar to the new growing builtins, so we don't need to
      inline the store+write barrier for the elements into all optimized
      code objects anymore.
      
      Also fix a bug in the OperationTyper for NumberSilenceNaN, which was
      triggered by this change.
      
      BUG=v8:5272
      
      Review-Url: https://codereview.chromium.org/2227493002
      Cr-Commit-Position: refs/heads/master@{#38418}
      e6822a83
  4. 05 Aug, 2016 3 commits
  5. 01 Aug, 2016 1 commit
  6. 27 Jul, 2016 1 commit
  7. 10 Jun, 2016 1 commit
    • jarin's avatar
      [turbofan] Introduce PlainPrimitiveToNumber. · 2890137b
      jarin authored
      This should solve the problem with missing checkpoints after JSToNumber
      (PlainPrimitiveToNumber is marked no-write, so the frame-state
      propagation should see through it.)
      
      Unfortunately, this also duplicates the word32- and float64-truncation
      magic that we have for JSToNumber in "simplified lowering".
      
      Review-Url: https://codereview.chromium.org/2059653002
      Cr-Commit-Position: refs/heads/master@{#36881}
      2890137b
  8. 27 May, 2016 1 commit
  9. 25 May, 2016 2 commits
  10. 10 May, 2016 1 commit
  11. 30 Apr, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Run everything after representation selection concurrently. · d1b3d426
      bmeurer authored
      Further refactor the pipeline to even run the first scheduler (part of
      the effect control linearization) concurrently. This temporarily
      disables most of the write barrier elimination, but we will get back to
      that later.
      
      Drive-by-fix: Remove the dead code from ChangeLowering, and stack
      allocate the Typer in the pipeline. Also migrate the AllocateStub to a
      native code builtin, so that we have the code object + a handle to it
      available all the time.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
      R=mstarzinger@chromium.org
      BUG=v8:4969
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1926023002
      Cr-Commit-Position: refs/heads/master@{#35918}
      d1b3d426
  12. 18 Apr, 2016 1 commit
  13. 12 Apr, 2016 2 commits
  14. 11 Apr, 2016 1 commit
  15. 01 Apr, 2016 2 commits
  16. 16 Mar, 2016 1 commit
    • mstarzinger's avatar
      Introduce "optimized_out" oddball marker for compilers. · eee34dd5
      mstarzinger authored
      This introduces {optimized_out} as another Oddball kind to be used by
      optimizing compilers when values are being optimized away. The aim is
      providing visibility when this value leaks into the application domain.
      Currently this will lead to {undefined} values appearing which then
      silently propagate through the application. The special oddball can be
      identified easily as a bug and also the debugger can treat it specially
      when needed.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1810483002
      
      Cr-Commit-Position: refs/heads/master@{#34817}
      eee34dd5
  17. 16 Dec, 2015 1 commit
  18. 28 Oct, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Lower mapped arguments objects in inline frame. · d1f77302
      mstarzinger authored
      This lowers JSCreateArguments nodes within inline (i.e. non-outermost)
      frames that create "mapped arguments objects" to inline allocations.
      
      The arguments count as well as each value is statically known and can be
      directly stored into the arguments object. Note that the object is still
      context-dependent and the map is loaded from the current context. The
      object size is not taken into account for now, we might want to limit it
      later though to keep code size bounded.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1403363004
      
      Cr-Commit-Position: refs/heads/master@{#31619}
      d1f77302
  19. 16 Oct, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Move SimplifiedOperatorBuilder into JSGraph. · b7990793
      mstarzinger authored
      This fixes the lifetime of nodes created by JSGlobalSpecialization that
      contain a simplified operator. In the case where this reducer runs as
      part of the inliner, the SimplifiedOperatorBuilder was instantiated with
      the wrong zone. This led to use-after-free of simplified operators.
      
      To avoid such situations in the future, we decided to move this operator
      builder into the JSGraph and make the situation uniform with all other
      operator builders.
      
      R=bmeurer@chromium.org
      BUG=chromium:543528
      LOG=n
      
      Review URL: https://codereview.chromium.org/1409993002
      
      Cr-Commit-Position: refs/heads/master@{#31334}
      b7990793
  20. 01 Sep, 2015 1 commit
  21. 31 Aug, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Remove usage of Unique<T> from graph. · 6e65e6db
      mstarzinger authored
      The usage of Unique<T> throughout the TurboFan IR does not have any
      advantage. There is no single point in time when they are initialized
      and most use-sites looked through to the underlying Handle<T> anyways.
      Also there already was a mixture of Handle<T> versus Unique<T> in the
      graph and this unifies the situation to use Handle<T> everywhere.
      
      R=bmeurer@chromium.org,titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1314473007
      
      Cr-Commit-Position: refs/heads/master@{#30458}
      6e65e6db
  22. 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
  23. 18 Jun, 2015 1 commit
  24. 01 Jun, 2015 1 commit
  25. 16 Apr, 2015 1 commit
  26. 16 Feb, 2015 1 commit
  27. 23 Jan, 2015 1 commit
    • danno's avatar
      Remove the dependency of Zone on Isolate · c7b09aac
      danno authored
      Along the way:
      - Thread isolate parameter explicitly through code that used to
        rely on getting it from the zone.
      - Canonicalize the parameter position of isolate and zone for
        affected code
      - Change Hydrogen New<> instruction templates to automatically
        pass isolate
      
      R=mstarzinger@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/868883002
      
      Cr-Commit-Position: refs/heads/master@{#26252}
      c7b09aac
  28. 14 Jan, 2015 2 commits
  29. 08 Jan, 2015 1 commit
  30. 12 Dec, 2014 1 commit
  31. 09 Dec, 2014 1 commit
  32. 02 Dec, 2014 1 commit
  33. 07 Nov, 2014 1 commit
  34. 29 Oct, 2014 1 commit