1. 11 May, 2016 1 commit
  2. 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
  3. 03 May, 2016 1 commit
  4. 14 Apr, 2016 1 commit
    • mstarzinger's avatar
      [turbofan] Use inline allocation for closures. · 43c7c76f
      mstarzinger authored
      This changes closure creation to lower to inline allocations when
      possible instead of going through the FastNewClosureStub. It allows us
      to leverage all advantages of inline allocations on closures. Note that
      it is only safe to embed the raw entry point of the compile lazy stub
      into the code, because that stub is immortal and immovable.
      
      R=mvstanton@chromium.org
      
      Review URL: https://codereview.chromium.org/1573153002
      
      Cr-Commit-Position: refs/heads/master@{#35499}
      43c7c76f
  5. 19 Feb, 2016 2 commits
    • 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
    • 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
  6. 15 Feb, 2016 4 commits
  7. 12 Feb, 2016 1 commit
    • bmeurer's avatar
      [runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments. · 09d84535
      bmeurer authored
      The FastNewStrictArgumentsStub is very similar to the recently added
      FastNewRestParameterStub, it's actually almost a copy of it, except that
      it doesn't have the fast case we have for the empty rest parameter. This
      patch improves strict arguments in TurboFan and fullcodegen by up to 10x
      compared to the previous version.
      
      Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject
      for the in-object properties instead of having them as constants in the
      Heap class.
      
      Drive-by-fix: Use this stub and the FastNewRestParameterStub in the
      interpreter to avoid the runtime call overhead for strict arguments
      and rest parameter creation.
      
      R=jarin@chromium.org
      TBR=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1693513002
      
      Cr-Commit-Position: refs/heads/master@{#33925}
      09d84535
  8. 08 Feb, 2016 1 commit