1. 31 Aug, 2016 4 commits
    • mlippautz's avatar
      [heap] MemoryChunk cleanup · b15bda38
      mlippautz authored
      BUG=
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2286613002
      Cr-Commit-Position: refs/heads/master@{#39054}
      b15bda38
    • neis's avatar
      [modules] Partial scope info support of modules · 840d1e84
      neis authored
      This introduces a new heap object ModuleInfo, which is to ModuleDescriptor
      what ScopeInfo is to Scope.  When deserializing a scope info that contains
      a module info, we deserialize the module info into a module descriptor and
      put it into the synthesized module scope.
      
      Currently, module infos only store exports.
      
      R=adamk@chromium.org
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2277253003
      Cr-Commit-Position: refs/heads/master@{#39049}
      840d1e84
    • mlippautz's avatar
      [heap] Incremental marking: Fix compile on MIPS · 91a4102a
      mlippautz authored
      TBR=ulan@chromium.org
      BUG=chromium:468240
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2293903004
      Cr-Commit-Position: refs/heads/master@{#39044}
      91a4102a
    • mlippautz's avatar
      [heap] Integrate embedder heap tracer into incremental marking · 998c9285
      mlippautz authored
      - Respect a deadline when processing wrappers during incremental marking, i.e.,
        don't force completetion on each individual step
      - Only finalize when both, the internal marking deque and wrappers, are
        processed
      
      Some results (twitter using --enable-blink-features=TraceWrappables)
      
      === BEFORE ===
      incremental_wrapper_tracing_longest_step
        len: 13
        min: 0.0
        ---> max: 6.6
        ---> avg: 3.83846153846
        [0,5[: 7
        [5,10[: 6
      mark.wrapper_tracing
        len: 13
        min: 0.0
        max: 2.0 (non-incremental MC)
        avg: 0.153846153846
        [0,5[: 13
      
      === AFTER ===
      incremental_wrapper_tracing_longest_step
        len: 8
        min: 0.0
        ---> max: 1.1
        ---> avg: 0.8875
        [0,5[: 8
      mark.wrapper_tracing (not excluding non-incremental MC)
        len: 8
        min: 0.0
        max: 2.5 (non-incremental MC)
        avg: 0.3125
        [0,5[: 8
      
      BUG=chromium:468240
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2287343002
      Cr-Commit-Position: refs/heads/master@{#39041}
      998c9285
  2. 30 Aug, 2016 3 commits
  3. 29 Aug, 2016 1 commit
  4. 28 Aug, 2016 1 commit
  5. 27 Aug, 2016 1 commit
    • verwaest's avatar
      Revert of Always deserialize scope infos for parsing (patchset #3 id:40001 of... · f046cb95
      verwaest authored
      Revert of Always deserialize scope infos for parsing (patchset #3 id:40001 of https://codereview.chromium.org/2280933002/ )
      
      Reason for revert:
      Significantly tanks parsing. We probably should just keep on doing what we're doing: partially deserialize while resolving variables. If we do scope-info backed resolution after regular resolution based on remaining free variables, we can probably reduce the time-frame of that part. We soon after anyway need to sync with the main thread.
      
      Original issue's description:
      > Always deserialize scope infos for parsing
      >
      > When looking up variables in the ScopeInfo, we did a linear scan of the
      > ScopeInfo. Since that's unacceptably slow, a context slot cache was added
      > that would speed up repeated lookups of the same variable.
      >
      > Instead, just always fully convert the ScopeInfo into scopes, so they can
      > lookup variables without scanning the ScopeInfo.
      >
      > This also allows for removing the now unused ContextSlotCache.
      >
      > R=adamk@chromium.org,verwaest@chromium.org,marja@chromium.org
      > BUG=v8:5315
      >
      > Committed: https://crrev.com/81f824cad18e4dc873a8838943217eb9c9f0c1f0
      > Cr-Commit-Position: refs/heads/master@{#38953}
      
      TBR=adamk@chromium.org,marja@chromium.org,jochen@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5315
      
      Review-Url: https://codereview.chromium.org/2287783003
      Cr-Commit-Position: refs/heads/master@{#38958}
      f046cb95
  6. 26 Aug, 2016 3 commits
    • jochen's avatar
      Always deserialize scope infos for parsing · 81f824ca
      jochen authored
      When looking up variables in the ScopeInfo, we did a linear scan of the
      ScopeInfo. Since that's unacceptably slow, a context slot cache was added
      that would speed up repeated lookups of the same variable.
      
      Instead, just always fully convert the ScopeInfo into scopes, so they can
      lookup variables without scanning the ScopeInfo.
      
      This also allows for removing the now unused ContextSlotCache.
      
      R=adamk@chromium.org,verwaest@chromium.org,marja@chromium.org
      BUG=v8:5315
      
      Review-Url: https://codereview.chromium.org/2280933002
      Cr-Commit-Position: refs/heads/master@{#38953}
      81f824ca
    • mlippautz's avatar
      [heap] Properly propagate allocated space during new space evacuaton in MC · bb4974d1
      mlippautz authored
      New space evaucation in MC supports, similar to scavenges, fall back allocation
      in old space.
      
      For new space evacuation we support stick and non-sticky modes for fallback. The
      sticky mode essentially removes the capability to allocate in new space while
      the non-sticky mode only falls back for a single allocation.
      
      We use the non-sticky mode for allocations that are too large for a LAB but
      should still go in new space. When such an allocation fails in new space, we
      allocate in old space in non-sticky mode as we would still like to reuse the
      remainder memory in new space. However, in such a case we fail to properly
      report the space allocated in resulting in a missed recorded slot.
      
      BUG=chromium:641270
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2280943002
      Cr-Commit-Position: refs/heads/master@{#38940}
      bb4974d1
    • mlippautz's avatar
      [heap] GCTracer: Properly reset all members for unittests · a4a4e7fa
      mlippautz authored
      BUG=chromium:639818
      R=jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2279193002
      Cr-Commit-Position: refs/heads/master@{#38930}
      a4a4e7fa
  7. 25 Aug, 2016 2 commits
    • mlippautz's avatar
      [heap] Switch to 500k pages · 2101e691
      mlippautz authored
      Decrease regular heap object size to 400k. In a follow up, we can now get rid of
      the new space border page while keeping the 1M minimum new space size.
      
      This reverts commit 1617043c.
      
      BUG=chromium:636331
      
      Review-Url: https://codereview.chromium.org/2278653003
      Cr-Commit-Position: refs/heads/master@{#38916}
      2101e691
    • mlippautz's avatar
      [heap] GCTracer: Record details for incremental marking · 3866975f
      mlippautz authored
      Record details, such as cumulative duration, number of steps, and longest steps
      in IncrementalMarkingDetails which get populated at a single callsite
      (AddScopeSample). Remove member fields that thus become obsolete (unfortunately
      not all of them).
      
      Additional remove some dead code and refactor printing. Printing in a single
      statement allows for using logcat on Android.
      
      This should also address the regression in chromium:640524.
      
      BUG=chromium:639818,chromium:640524
      R=jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2269093002
      Cr-Commit-Position: refs/heads/master@{#38912}
      3866975f
  8. 23 Aug, 2016 4 commits
  9. 19 Aug, 2016 4 commits
  10. 18 Aug, 2016 7 commits
  11. 17 Aug, 2016 1 commit
    • mlippautz's avatar
      [heap] Filter slots in map space · 23f61424
      mlippautz authored
      We mark an object allocated as uninitialized. If we happen to have a GC before
      fields of a map are written, msan will observe access to unitialized memory and
      crash.
      
      This also unifies the handling as we now deal with all spaces in the same way.
      In future we could parallelize clearing.
      
      BUG=chromium:638226
      R=hpayer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2251993002
      Cr-Commit-Position: refs/heads/master@{#38681}
      23f61424
  12. 16 Aug, 2016 2 commits
  13. 12 Aug, 2016 4 commits
  14. 11 Aug, 2016 1 commit
  15. 10 Aug, 2016 2 commits