1. 19 Feb, 2016 9 commits
    • bmeurer's avatar
      [turbofan] Remove the JSContextRelaxation reducer. · 8a7186b8
      bmeurer authored
      This reducer doesn't really add value, because:
      
       (a) it is only concerned with JSCallFunction and JSToNumber, but when
           we get to it, all JSCallFunction nodes will have been replaced by
           Call nodes, and in the not so far future, we will also have
           replaced almost all JSToNumber nodes with better code,
       (b) and the reducer tries to be smart and use one of the outermost
           contexts, but that might not be beneficial always; actually it
           might even create longer live ranges and lead to more spilling
           in some cases.
      
      But most importantly, the JSContextRelaxation currently blocks inlining
      based on SharedFunctionInfo, because it requires the inliner to check
      the native context, which in turn requires JSFunction knowledge. So I'm
      removing this reducer for now to unblock the more important inliner
      changes.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1715633002
      
      Cr-Commit-Position: refs/heads/master@{#34139}
      8a7186b8
    • bmeurer's avatar
      [turbofan] Relax restrictions on JSCreate inlining. · 24c8f0b0
      bmeurer authored
      No need to limit JSCreate inlining to JS_OBJECT_TYPE, since we can
      handle everything that the FastNewObjectStub can deal with. Also we
      don't need to restrict the number of inobject properties, as that is
      already taken care of by the runtime anyways (limited by the initial
      slack for the constructor).
      
      And last but not least, we can of course inline allocations for
      subclasses as long as the new.target is a JSFunction and it's initial
      map's constructor points back to the target (same condition as for
      the FastNewObjectStub fast case).
      
      R=jarin@chromium.org
      BUG=v8:4493
      LOG=n
      
      Review URL: https://codereview.chromium.org/1711883003
      
      Cr-Commit-Position: refs/heads/master@{#34138}
      24c8f0b0
    • jarin's avatar
      [turbofan] Move lowering of ObjectIs* nodes to ChangeLowering. · a56af889
      jarin authored
      Review URL: https://codereview.chromium.org/1712563002
      
      Cr-Commit-Position: refs/heads/master@{#34137}
      a56af889
    • bmeurer's avatar
      [stubs] Introduce a dedicated FastNewObjectStub. · ba2077aa
      bmeurer authored
      Move the already existing fast case for %NewObject into a dedicated
      FastNewObjectStub that we can utilize in places where we would otherwise
      fallback to %NewObject immediately, which is rather expensive.
      
      Also use FastNewObjectStub as the generic implementation of JSCreate,
      which should make constructor inlining based on SharedFunctionInfo (w/o
      specializing to a concrete closure) viable soon.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1708313002
      
      Cr-Commit-Position: refs/heads/master@{#34136}
      ba2077aa
    • bmeurer's avatar
      [turbofan] Reduce JSInliner dependencies on JSFunction. · c6433cb0
      bmeurer authored
      Ideally the JSInliner should not be concerned with JSFunction's at all,
      but only look at the SharedFunctionInfo. This reduces the uses of the
      concrete closure to two remaining cases, which we plan to fix soonish
      too.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1714803002
      
      Cr-Commit-Position: refs/heads/master@{#34135}
      c6433cb0
    • zhengxing.li's avatar
      X87: More simplification and unification of frame handling. · b5dc3dd2
      zhengxing.li authored
        port 55071954 (r34114)
      
        original commit message:
        Frame slots indexes numbers are used more consistently for
        computation in both TurboFan and Crankshaft. Specifically,
        Crankshaft now uses frame slot indexes in LChunk, removing
        the need for some special-case maths when building the
        deoptimization translation table.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1714763002
      
      Cr-Commit-Position: refs/heads/master@{#34134}
      b5dc3dd2
    • v8-autoroll's avatar
      Update V8 DEPS. · a238a30d
      v8-autoroll authored
      Rolling v8/tools/clang to b194e7fa21cc99980e38ff8b29740e78134fcfce
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1712993002
      
      Cr-Commit-Position: refs/heads/master@{#34133}
      a238a30d
    • adamk's avatar
      Don't reflect ES2015 Function name inference in Function.prototype.toString · cc2ea257
      adamk authored
      Various syntactic forms now cause functions to have names where they
      didn't before. Per the upcoming changes to the toString spec, only
      a name that was literally part of a function's expression or declaration
      is meant to be reflected in toString. This also happens to be the same
      set of names that V8 currently outputs (without the --harmony-function-name
      flag).
      
      This required distinguishing anonymous FunctionExpressions from other sorts
      of function definitions (like methods and getters/setters) in the AST, parser,
      and at runtime.
      
      The patch also takes the opportunity to remove one more argument (and enum)
      from FunctionLiteral, as well as adding a special factory method for the
      case of a FunctionLiteral representing toplevel or eval'd code.
      
      BUG=v8:4760
      LOG=n
      
      Review URL: https://codereview.chromium.org/1712833002
      
      Cr-Commit-Position: refs/heads/master@{#34132}
      cc2ea257
    • littledan's avatar
      Make Date.prototype.toGMTString an alias for Date.prototype.toUTCString · 44f9c6a6
      littledan authored
      In ES2015, Date.prototype.toGMTString is simply an alias of
      Date.prototype.toUTCString, so it has the same identity as a function and
      doesn't have its own name. Firefox has already shipped this behavior.
      Previously, we copied JSC behavior by making it a separate function.
      This change makes an addition test262 test pass.
      
      BUG=v8:4708
      LOG=Y
      R=adamk
      
      Review URL: https://codereview.chromium.org/1709373002
      
      Cr-Commit-Position: refs/heads/master@{#34131}
      44f9c6a6
  2. 18 Feb, 2016 31 commits