1. 09 Jun, 2016 2 commits
  2. 06 Jun, 2016 1 commit
  3. 30 May, 2016 1 commit
  4. 11 May, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Fix incorrect frame walking in arguments create stubs · 40f34541
      rmcilroy authored
      The previous approach taken by FastNew[Sloppy,Strict,Rest]ArgumentsStub
      looked at the function slot in order to skip stub frames
      and find the JS frame. However, stub frames do not have a
      function slot (in fact their fixed frame ends one slot
      before the JS frame's function slot). Therefore, if this
      location in the stub frame happens to have the function
      object the create arguments stubs won't skip this frame
      correctly.
      
      Replace this approach with one where the stub is
      specialized to either skip a frame if required (since
      there will only ever be one extra frame on Ignition
      the loop approach isn't necessary).
      
      BUG=v8:4928
      LOG=N
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg
      
      Review-Url: https://codereview.chromium.org/1949023003
      Cr-Commit-Position: refs/heads/master@{#36181}
      40f34541
  5. 10 May, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Initial version of allocation folding and write barrier elimination. · b8229ec4
      bmeurer authored
      This adds a new pass MemoryOptimizer that walks over the effect chain
      from Start and lowers all Allocate, LoadField, StoreField, LoadElement,
      and StoreElement nodes, trying to fold allocations into allocation
      groups and eliminate write barriers on StoreField and StoreElement if
      possible (i.e. if the object belongs to the current allocation group and
      that group allocates in new space).
      
      R=hpayer@chromium.org, jarin@chromium.org
      BUG=v8:4931, chromium:580959
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1963583004
      Cr-Commit-Position: refs/heads/master@{#36128}
      b8229ec4
  6. 03 May, 2016 1 commit
  7. 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
  8. 28 Apr, 2016 2 commits
  9. 22 Apr, 2016 1 commit
  10. 19 Apr, 2016 1 commit
  11. 18 Apr, 2016 1 commit
  12. 16 Apr, 2016 2 commits
  13. 13 Apr, 2016 5 commits
  14. 12 Apr, 2016 2 commits
    • binji's avatar
      [Atomics] code stubs for atomic operations · 10b5febe
      binji authored
      * New atomic code stubs for x64, ia32, arm, arm64
      * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue
        to macro-assembler-ia32 (API based on x64 macro assembler)
      * Remove runtime implementation of Atomics.load, the code stub should always be
        called instead
      * Add new test to mjsunit atomics test; check that Smi values of different
        sizes are supported when possible, else fall back to HeapNumbers
      
      These changes were needed to add another codestub:
      * Bump kStubMajorKeyBits from 7 to 8
      * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12
      
      BUG=v8:4614
      LOG=y
      
      Review URL: https://codereview.chromium.org/1617503003
      
      Cr-Commit-Position: refs/heads/master@{#35427}
      10b5febe
    • bmeurer's avatar
      [turbofan] Generalize AllocateStub to allow old space allocation. · 4aa19274
      bmeurer authored
      Previously TurboFan always went to the runtime to allocate in old space,
      which is pretty slow compare to a stub call.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1877323002
      
      Cr-Commit-Position: refs/heads/master@{#35418}
      4aa19274
  15. 11 Apr, 2016 2 commits
  16. 08 Apr, 2016 1 commit
  17. 06 Apr, 2016 3 commits
    • verwaest's avatar
      Simplify IC interfaces · 911a5768
      verwaest authored
      BUG=
      
      Review URL: https://codereview.chromium.org/1865873002
      
      Cr-Commit-Position: refs/heads/master@{#35301}
      911a5768
    • epertoso's avatar
      [stubs] Introduce MultiplyStub. · 6c2bb838
      epertoso authored
      Adds a MultiplyStub for the multiplication operator and hooks it with TurboFan and Ignition.
      
      Currently, the SMI times SMI case is handled by converting both the operands to double precision floating points, we may consider adding a fast path later.
      
      Review URL: https://codereview.chromium.org/1860043002
      
      Cr-Commit-Position: refs/heads/master@{#35287}
      6c2bb838
    • bmeurer's avatar
      [generators] Decouple generator resume from fullcodegen. · 974721c6
      bmeurer authored
      Introduce a ResumeGeneratorTrampoline, which does the actual stack state
      reconstruction (currently always restores a fullcodegen frame), and
      introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
      %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
      this native builtin.
      
      Also unify the flooding in case of step-in to always work based on
      JSFunction and remove the special casing for JSGeneratorObject.
      
      R=mstarzinger@chromium.org, neis@chromium.org
      TBR=rossberg@chromium.org
      BUG=chromium:513471
      LOG=n
      
      Review URL: https://codereview.chromium.org/1865833002
      
      Cr-Commit-Position: refs/heads/master@{#35283}
      974721c6
  18. 01 Apr, 2016 1 commit
  19. 23 Mar, 2016 1 commit
  20. 22 Mar, 2016 1 commit
    • bmeurer's avatar
      [stubs] Introduce AddStub and SubtractStub. · 0bedf6f0
      bmeurer authored
      This adds two new stubs, AddStub and SubtractStub, for the plus and the
      minus operators, and hooks them up with TurboFan and Ignition.
      Especially the addition case is very heavy and we might want to look
      into splitting that up further into specialized stubs (similar to what
      we did with ToNumberStub recently).
      
      R=epertoso@chromium.org
      
      Review URL: https://codereview.chromium.org/1823083002
      
      Cr-Commit-Position: refs/heads/master@{#34994}
      0bedf6f0
  21. 21 Mar, 2016 3 commits
  22. 16 Mar, 2016 1 commit
    • bmeurer's avatar
      [compiler] Introduce code stubs for abstract equality. · 8a809501
      bmeurer authored
      Add EqualStub and NotEqualStub, based on the CodeStubAssembler, and hook
      them up with TurboFan and Ignition. The stubs are a full implementation
      of abstract equality for ES6 plus the current SIMD.js draft, unlike the
      generic version of the CompareIC, which only implements a subset with
      funky runtime fallbacks.
      
      Drive-by-fix: Introduce some common helper methods.
      
      R=epertoso@chromium.org
      BUG=chromium:592690
      LOG=n
      
      Review URL: https://codereview.chromium.org/1795793002
      
      Cr-Commit-Position: refs/heads/master@{#34806}
      8a809501
  23. 07 Mar, 2016 1 commit
    • ishell's avatar
      [crankshaft] Support ES6 tail call elimination. · 22938040
      ishell authored
      HInvokeFunction and HApplyArguments instructions now support tail calling.
      
      Inlining of calls at tail position is not supported yet and therefore still disabled.
      
      The tail-call-megatest was modified so that the usages of "arguments" object do not disable Crankshaft.
      
      TBR=bmeurer@chromium.org
      BUG=v8:4698
      LOG=N
      
      Review URL: https://codereview.chromium.org/1760253003
      
      Cr-Commit-Position: refs/heads/master@{#34542}
      22938040
  24. 04 Mar, 2016 1 commit
    • bmeurer's avatar
      [compiler] Introduce code stubs for string relational comparisons. · 5912e0f0
      bmeurer authored
      Add StringLessThanStub, StringLessThanOrEqualStub, StringGreaterThanStub
      and StringGreaterThanOrEqualStub, based on the CodeStubAssembler, and
      hook them up with TurboFan (and Ignition). The stubs are currently
      essentially comparable with the StringCompareStub, which is now
      obsolete. We can later extend these stubs to cover more interesting
      cases (i.e. two byte sequential string comparisons, etc.).
      
      R=epertoso@chromium.org
      
      Review URL: https://codereview.chromium.org/1765823002
      
      Cr-Commit-Position: refs/heads/master@{#34485}
      5912e0f0
  25. 03 Mar, 2016 2 commits
    • bmeurer's avatar
      [compiler] Initial TurboFan code stubs for abstract relational comparison. · 62bc168d
      bmeurer authored
      This adds new code stubs for abstract relational comparison,
      namely LessThanStub, LessThanOrEqualStub, GreaterThanStub and
      GreaterThanOrEqualStub, and hooks them up for Ignition and TurboFan.
      These stubs implement the full compare operation without any
      unpredictable bailouts. Currently they still go to C++ for string
      comparisons, and also use the %ToPrimitive_Number runtime entry, as
      we still lack a stub for the ToPrimitive operation. These issues
      will be addressed separately in follow-up CLs.
      
      Drive-by-fix: Add support for deferred code in the RawMachineAssembler
      and CodeStubAssembler. A block can be marked as deferred by marking its
      Label as deferred, which will then make the register allocator penalize
      this block and prefer better register assignments for the other blocks.
      
      R=epertoso@chromium.org
      
      Review URL: https://codereview.chromium.org/1759133002
      
      Cr-Commit-Position: refs/heads/master@{#34463}
      62bc168d
    • bmeurer's avatar
      [compiler] Introduce StringEqualStub and StringNotEqualStub. · 2689548e
      bmeurer authored
      These new stubs perform exactly the same job as the string equality case
      for the CompareIC, but are platform independent and usable outside of
      fullcodegen and Crankshaft. We use them in the StrictEqualStub and the
      StrictNotEqualStub instead of falling back to the runtime immediately
      for String comparisons, and we also use them in TurboFan to perform
      String equality or inequality comparisons.
      
      These stubs currently handle only internalized and one byte strings w/o
      going to C++, but it should be easy to add support for more string cases
      later, i.e. utilizing already flattened cons strings or comparing two
      byte strings as well.
      
      Review URL: https://codereview.chromium.org/1761823002
      
      Cr-Commit-Position: refs/heads/master@{#34459}
      2689548e
  26. 02 Mar, 2016 1 commit