1. 04 Jan, 2017 1 commit
  2. 08 Dec, 2016 1 commit
  3. 24 Nov, 2016 1 commit
  4. 10 Nov, 2016 1 commit
  5. 09 Nov, 2016 1 commit
  6. 17 Oct, 2016 1 commit
  7. 20 Sep, 2016 1 commit
  8. 05 Sep, 2016 2 commits
  9. 01 Sep, 2016 1 commit
  10. 30 Aug, 2016 2 commits
  11. 29 Aug, 2016 2 commits
  12. 11 Aug, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Add inlined Array.prototype.pop support. · b8f47504
      bmeurer authored
      This adds a very first version of inlined Array.prototype.pop into
      TurboFan optimized code. We currently limit the inlining to fast
      object or smi elements, until the unclear situation around hole NaNs
      is resolved and we have a clear semantics inside the compiler.
      
      It's also probably overly defensive in when it's safe to inline
      the call to Array.prototype.pop, but we can always extend that
      later once we have sufficient trust in the implementation and see
      an actual need to extend it.
      
      BUG=v8:2229,v8:3952,v8:5267
      R=epertoso@chromium.org
      
      Review-Url: https://codereview.chromium.org/2239703002
      Cr-Commit-Position: refs/heads/master@{#38578}
      b8f47504
  13. 09 Aug, 2016 1 commit
  14. 03 Aug, 2016 2 commits
    • bmeurer's avatar
      [turbofan] Unify number operation typing rules. · 66e96fc9
      bmeurer authored
      Move all the typing rules for unary and binary number operations to the
      OperationTyper and use them for both the regular Typer as well as the
      retyper that runs as part of SimplifiedLowering.
      
      R=epertoso@chromium.org
      
      Review-Url: https://codereview.chromium.org/2202883005
      Cr-Commit-Position: refs/heads/master@{#38283}
      66e96fc9
    • bmeurer's avatar
      [turbofan] Improve typing rule for modulus. · 17a7f583
      bmeurer authored
      Infer a more precise type even in case where NaN and/or -0 is a possible
      outcome of the operation, and use this more precise type to improve code
      generation for the modulus itself by trying harder to stick to Word32
      operations instead of going to Float64, and also optimize the pattern
      where we compare the output of x % y to some non-zero integer constant
      K, in which case we can truncate the output of x % y to Word32 if the
      type of x % y is Signed32/Unsigned32 \/ NaN \/ MinusZero, as NaN and
      MinusZero will both be truncated to zero, which cannot match the non
      zero constant K.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2202413002
      Cr-Commit-Position: refs/heads/master@{#38267}
      17a7f583
  15. 01 Aug, 2016 1 commit
  16. 11 Jul, 2016 1 commit
  17. 05 Jul, 2016 1 commit
  18. 01 Jul, 2016 1 commit
    • bmeurer's avatar
      [builtins] Unify most of the remaining Math builtins. · 0a0fe8fb
      bmeurer authored
      Import fdlibm versions of acos, acosh, asin and asinh, which are more
      precise and produce the same result across platforms (we were using
      libm versions for asin and acos so far, where both speed and precision
      depended on the operating system so far). Introduce appropriate TurboFan
      operators for these functions and use them both for inlining and for the
      generic builtin.
      
      Also migrate the Math.imul and Math.fround builtins to TurboFan builtins
      to ensure that their behavior is always exactly the same as the inlined
      TurboFan version (i.e. C++ truncation semantics for double to float
      don't necessarily meet the JavaScript semantics).
      
      For completeness, also migrate Math.sign, which can even get some nice
      love in TurboFan.
      
      Drive-by-fix: Some alpha-sorting on the Math related functions, and
      cleanup the list of Math intrinsics that we have to export via the
      native context currently.
      
      BUG=v8:3266,v8:3496,v8:3509,v8:3952,v8:5169,v8:5170,v8:5171,v8:5172
      TBR=rossberg@chromium.org
      R=franzih@chromium.org
      
      Review-Url: https://codereview.chromium.org/2116753002
      Cr-Commit-Position: refs/heads/master@{#37476}
      0a0fe8fb
  19. 28 Jun, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Introduce simplified operator NumberAbs. · f50a601f
      bmeurer authored
      Add NumberAbs operator to implement an inline version of Math.abs, that
      can be optimized and eliminated. We don't use any speculation here, but
      for now stick to the information we can infer (this way we avoid the
      inherent deopt loops that Crankshaft has around Math.abs).
      
      CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
      R=jarin@chromium.org
      BUG=v8:5086
      
      Review-Url: https://codereview.chromium.org/2096403002
      Cr-Commit-Position: refs/heads/master@{#37306}
      f50a601f
  20. 20 Jun, 2016 1 commit
  21. 19 Jun, 2016 1 commit
  22. 01 Apr, 2016 1 commit
  23. 08 Feb, 2016 1 commit
  24. 30 Nov, 2015 1 commit
    • bradnelson's avatar
      Make typing-asm match spec more closely around load/store, add more tests. · cf5546ba
      bradnelson authored
      Shifts of integer values are in some contexts collapsed by the parser into single literal AST nodes, rather than a direct representation of the parse tree. Confirming this behavior in tests.
      
      Integer TypedArrays are assumed to load and store "intish" values rather than more fine-grained type information. Reducing the precision of the typing information to match the spec and simplify the wasm generator.
      
      The asm spec requires load and store values of various "float?", "floatish", "double?" and "intish" types to ensure undefined values are not visible and that float32 rounding occurs at the right time. More closely matching this.
      
      Adding additional testing around unsigned / signed comparisons, loads and stores.
      
      Adding addition debug mode printing when asserting about types fail.
      
      BUG= https://code.google.com/p/v8/issues/detail?id=4203
      TEST=test-asm-validator, wasm side tests
      R=titzer@chromium.org,aseemgarg@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/1471073003
      
      Cr-Commit-Position: refs/heads/master@{#32419}
      cf5546ba
  25. 26 Nov, 2015 1 commit
  26. 24 Nov, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Initial support for inline allocations of arrays. · e3905047
      bmeurer authored
      Add support for using inline allocations for arrays in lowering of
      JSCreateArray when target equals new.target.  Currently we are only
      concerend with the straight-forward Array() and Array(length) cases,
      but at some point TurboFan should also be able to support the more
      complex initializing cases.
      
      R=mvstanton@chromium.org
      BUG=v8:4470
      LOG=n
      
      Review URL: https://codereview.chromium.org/1465203002
      
      Cr-Commit-Position: refs/heads/master@{#32191}
      e3905047
  27. 17 Nov, 2015 1 commit
  28. 05 Nov, 2015 1 commit
  29. 04 Nov, 2015 1 commit
    • bmeurer's avatar
      [types] Use unified integral representation bits. · 6471fbf7
      bmeurer authored
      We don't need to distinguish between signed and unsigned integral
      representations in the big boy type system. It actually even hurts
      in some cases. The representation is only about the way the values
      are mapped to bits in memory/registers, but the interpretation of
      the bits is specified by the semantic dimension.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1416953006
      
      Cr-Commit-Position: refs/heads/master@{#31771}
      6471fbf7
  30. 03 Nov, 2015 1 commit
  31. 29 Oct, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Initial support for transitioning stores. · a0b8650e
      bmeurer authored
      Add support for stores that transition to writable data fields,
      based on the BeginRegion/FinishRegion mechanism for atomic regions
      in the scheduler.
      
      This is early work and still a bit rough around the edges, and similar
      to regular stores, we don't support transitioning stores to double
      fields yet.
      
      R=jarin@chromium.org
      BUG=v8:4470
      LOG=n
      
      Review URL: https://codereview.chromium.org/1406153010
      
      Cr-Commit-Position: refs/heads/master@{#31645}
      a0b8650e
  32. 28 Oct, 2015 1 commit
  33. 26 Oct, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Sanitize typing rules for function calls. · 3fbbfc38
      bmeurer authored
      Currently we (mostly) infer FunctionType for JSFunction constants, and
      match the FunctionType in the typing rule for JSCallFunction. This has
      several drawbacks for JavaScript, especially we don't have Constant
      types for global functions (i.e. String, Object, Reflect and friends).
      Plus the FunctionType magic doesn't actually buy us anything. So this
      changes the typing rule for HeapConstant constant to actually infer
      Constant types for JSFunction objects and moves the recognition of
      builtin functions to the typing rule for JSCallFunction.
      
      Also adapts the specialized lowering in JSTypedLowering to Constant
      functions instead of FunctionType, which has the additional advantage
      that we can do the receiver wrapping/converting based on the (known)
      SharedFunctionInfo.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1420093005
      
      Cr-Commit-Position: refs/heads/master@{#31553}
      3fbbfc38
  34. 26 Aug, 2015 1 commit