1. 11 Jan, 2017 1 commit
  2. 23 Dec, 2016 1 commit
  3. 20 Dec, 2016 1 commit
  4. 15 Dec, 2016 1 commit
  5. 13 Dec, 2016 1 commit
  6. 12 Dec, 2016 1 commit
  7. 08 Dec, 2016 1 commit
  8. 07 Dec, 2016 1 commit
  9. 30 Nov, 2016 1 commit
  10. 29 Nov, 2016 2 commits
    • bmeurer's avatar
      [turbofan] Also optimize instanceof with bound functions. · 719d6c1d
      bmeurer authored
      For bound functions on the right-hand side of instanceof we can
      constant-fold to the actual [[BoundTargetFunction]], actually
      instance OrdinaryHasInstance. Move the Function.prototype[@@hasInstance]
      reduction up to the JSCallReducer to allow this optimization to become
      effective (and also enable other optimizations).
      
      BUG=v8:5267
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2537763002
      Cr-Commit-Position: refs/heads/master@{#41352}
      719d6c1d
    • bmeurer's avatar
      [turbofan] Add appropriate types to express Callable. · 777e142c
      bmeurer authored
      This introduces three new types OtherCallable, CallableProxy (and OtherProxy),
      and BoundFunction to make it possible to express Callable in the Type system.
      It also forces all undetectable receivers to be Callable, which matches the
      use case for undetectable, namely document.all (guarded by proper checks and
      tests).
      
      It also uses these new types to properly optimize instanceof (indirectly via
      OrdinaryHasInstance) based on the type of the constructor and the object. So
      we are able to constant-fold certain instanceof expressions based on types
      and completely avoid the builtin call.
      
      R=jarin@chromium.org
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2535753004
      Cr-Commit-Position: refs/heads/master@{#41345}
      777e142c
  11. 28 Nov, 2016 1 commit
  12. 24 Nov, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Remove inlining support for the deprecated pipeline. · 76fd6f25
      bmeurer authored
      The deprecated pipeline is used for asm.js only, where we forcibly
      disable inlining anyways (for performance reasons), so inlining via
      the AstGraphBuilder is essentially dead code by now, thus there's no
      point in trying to keep that around in the code base.
      
      Also nuke the test-run-inlining.cc file, which would require some heavy
      surgery (for probably little benefit), and move the useful tests for
      mjsunit tests instead.
      
      BUG=v8:2206,v8:5657
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2527053002
      Cr-Commit-Position: refs/heads/master@{#41245}
      76fd6f25
  13. 22 Nov, 2016 1 commit
  14. 21 Nov, 2016 1 commit
    • jgruber's avatar
      [debug-wrapper] Adapt tests, breakpoint.actual_location · 1834ab72
      jgruber authored
      Adapted various tests to restrictions of inspector protocol:
      
      * osr-typing-debug-change: Don't set function variable value.
      * debug-evaluate-locals: Add variable introduced by eval, run typeof
        inside evaluate().
      * regress-419663: Don't set duplicate breakpoints.
      * regress-crbug-465298: Compare against function name instead of value.
      * regress-crbug-621361: Make evaluate return string results.
      * debug-script: Various counts were off due to new way tests are called.
                      Added new inspector script type.
      
      Breakpoints now contain the actual break position, and remote object
      reconstruction has been extended a bit.
      
      BUG=v8:5530
      
      Review-Url: https://codereview.chromium.org/2505363002
      Cr-Commit-Position: refs/heads/master@{#41129}
      1834ab72
  15. 18 Nov, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Properly optimize instanceof (even in the presence of @@hasInstance). · 241c024c
      bmeurer authored
      This is the TurboFan counterpart of http://crrev.com/2504263004, but it
      is a bit more involved, since in TurboFan we always inline the appropriate
      call to the @@hasInstance handler, and by that we can optimize a lot more
      patterns of instanceof than Crankshaft, and even yield fast instanceof
      for custom @@hasInstance handlers (which we can now properly inline as
      well).
      
      Also we now properly optimize Function.prototype[@@hasInstance], even if
      the right hand side of an instanceof doesn't have the Function.prototype
      as its direct prototype.
      
      For the baseline case, we still rely on the global protector cell, but
      we can address that in a follow-up as well, and make it more robust in
      general.
      
      TEST=mjsunit/compiler/instanceof
      BUG=v8:5640
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2511223003
      Cr-Commit-Position: refs/heads/master@{#41092}
      241c024c
  16. 16 Nov, 2016 2 commits
    • rmcilroy's avatar
      [Turbofan] Fix missing break on AstGraphBuilder VisitCall. · 94e8417b
      rmcilroy authored
      Fixes a bug in ast-graph-builder added in r40965
      
      BUG=chromium:665680
      
      Review-Url: https://codereview.chromium.org/2509643002
      Cr-Commit-Position: refs/heads/master@{#41034}
      94e8417b
    • jgruber's avatar
      [debug-wrapper] Further extend the debug wrapper · b06c4ce5
      jgruber authored
      This CL further extends the debug wrapper, migrates around 60 tests, and
      removes a few tests that use functionality we will not support anymore.
      
      In more detail:
      
      * Removed tests that use:
        * enable/disable individual breakpoints
        * invocationText()
        * the ScriptCollected event
        * showBreakPoints
        * evalFromScript (and similar)
        * mirror.constructedBy and mirror.referencedBy
        * event_data.promise()
      * Some frame.evaluate uses were adapted since due to differences between
        remote objects (inspector) and mirrors. For instance, exceptions are
        currently not recreated exactly, since the inspector protocol does not
        give us the stack and message separately. Other objects (such as
        'this' in debug-evaluate-receiver-before-super) need to be explicitly
        converted to a string before the test works correctly.
      * Ensure that inspector stores the script before sending ScriptParsed and
        ScriptFailedToParse events in order to be able to use the script from
        within those events.
      * Better remote object reconstruction (e.g. for undefined and arrays).
      * New functionality in wrapper:
        * debuggerFlags().breakPointsActive.setValue()
        * scripts()
        * execState.setVariableValue()
        * execState.scopeObject().value()
        * execState.scopeObject().property()
        * execState.frame().allScopes()
        * eventData.exception()
        * eventData.script()
        * setBreakPointsActive()
      
      BUG=v8:5530
      
      Review-Url: https://codereview.chromium.org/2497973002
      Cr-Commit-Position: refs/heads/master@{#41019}
      b06c4ce5
  17. 15 Nov, 2016 2 commits
  18. 14 Nov, 2016 2 commits
  19. 09 Nov, 2016 1 commit
  20. 08 Nov, 2016 1 commit
  21. 07 Nov, 2016 4 commits
  22. 03 Nov, 2016 1 commit
  23. 27 Oct, 2016 2 commits
  24. 24 Oct, 2016 1 commit
  25. 19 Oct, 2016 1 commit
  26. 06 Oct, 2016 1 commit
  27. 05 Oct, 2016 3 commits
    • jarin's avatar
      Revert of [turbofan] Osr value typing + dynamic type checks on entry.... · ff81734c
      jarin authored
      Revert of [turbofan] Osr value typing + dynamic type checks on entry. (patchset #5 id:80001 of https://codereview.chromium.org/2384113002/ )
      
      Reason for revert:
      Tanks the world.
      
      Original issue's description:
      > [turbofan] Osr value typing + dynamic type checks on entry.
      >
      > This introduces a new OsrGuard node that is inserted during graph building
      > to guard the inferred type of the OSR value.
      >
      > The type of the OSR value is inferred by running the typer before OSR
      > deconstruction, and then taking the type from the phi that takes the
      > OSR value. After the deconstruction, we throw the types away.
      >
      > At the moment we only support the SignedSmall OSR type and we always
      > pick the tagged representation. Later, we might want to support more
      > types (such as Number) and pick better representations (int32/float64).
      >
      > This CL also removes the OSR deconstruction tests because they build
      > unrealistic graph (no effect chain, no loop termination). I considered
      > adding the effect chains to the tests, but this would make the tests
      > even more brittle.
      >
      > Committed: https://crrev.com/1f5dc90a900d222da44bee3eff171a2ba1e3c076
      > Cr-Commit-Position: refs/heads/master@{#39971}
      
      TBR=bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2395783002
      Cr-Commit-Position: refs/heads/master@{#39985}
      ff81734c
    • jarin's avatar
      [turbofan] Osr value typing + dynamic type checks on entry. · 1f5dc90a
      jarin authored
      This introduces a new OsrGuard node that is inserted during graph building
      to guard the inferred type of the OSR value.
      
      The type of the OSR value is inferred by running the typer before OSR
      deconstruction, and then taking the type from the phi that takes the
      OSR value. After the deconstruction, we throw the types away.
      
      At the moment we only support the SignedSmall OSR type and we always
      pick the tagged representation. Later, we might want to support more
      types (such as Number) and pick better representations (int32/float64).
      
      This CL also removes the OSR deconstruction tests because they build
      unrealistic graph (no effect chain, no loop termination). I considered
      adding the effect chains to the tests, but this would make the tests
      even more brittle.
      
      Review-Url: https://codereview.chromium.org/2384113002
      Cr-Commit-Position: refs/heads/master@{#39971}
      1f5dc90a
    • jarin's avatar
      [turbofan] Check instruction input/output count limits in instruction selector. · a974970c
      jarin authored
      BUG=chromium:625966
      
      Review-Url: https://codereview.chromium.org/2390303002
      Cr-Commit-Position: refs/heads/master@{#39970}
      a974970c
  28. 28 Sep, 2016 1 commit
  29. 27 Sep, 2016 1 commit
    • mstarzinger's avatar
      [turbofan] Fix indirect escapes in escape analysis. · 437a33ef
      mstarzinger authored
      This makes sure we only replace load operations for fields on virtual
      objects. Even though data flow information for non-virtual (escaping)
      allocations is available, it might be inaccurate in certain situations
      where object state hasn't been cleared.
      
      R=jarin@chromium.org
      TEST=mjsunit/compiler/regress-escape-analysis-indirect
      
      Review-Url: https://codereview.chromium.org/2369953002
      Cr-Commit-Position: refs/heads/master@{#39776}
      437a33ef
  30. 26 Sep, 2016 1 commit
    • bmeurer's avatar
      Revert of [compiler] Properly guard the speculative optimizations for... · b9cdb630
      bmeurer authored
      Revert of [compiler] Properly guard the speculative optimizations for instanceof. (patchset #3 id:40001 of https://codereview.chromium.org/2370693002/ )
      
      Reason for revert:
      Tanks EarleyBoyer.
      
      Original issue's description:
      > [compiler] Properly guard the speculative optimizations for instanceof.
      >
      > Add a general feedback slot for instanceof similar to what we already have
      > for for-in, which basically has a fast (indicated by the uninitialized
      > sentinel) and a slow (indicated by the megamorphic sentinel) mode. Now
      > we can only take the fast path when the feedback slot says it hasn't
      > seen any funky inputs and nothing funky appeared in the prototype chain.
      > In the TurboFan code we also deoptimize whenever we see a funky object
      > (i.e. a proxy or an object that requires access checks) in the prototype
      > chain (similar to what Crankshaft already did).
      >
      > Drive-by-fix: Also make Crankshaft respect the mode and therefore
      > address the deopt loop in Crankshaft around instanceof.
      >
      > We might want to introduce an InstanceOfIC mechanism at some point and
      > track the map of the right-hand side.
      >
      > BUG=v8:5267
      > R=mvstanton@chromium.org
      >
      > Committed: https://crrev.com/a0484bc6116ebc2b855de87d862945e2ae07169b
      > Cr-Commit-Position: refs/heads/master@{#39718}
      
      TBR=mvstanton@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2365223003
      Cr-Commit-Position: refs/heads/master@{#39736}
      b9cdb630