1. 17 Aug, 2016 1 commit
    • rmcilroy's avatar
      Avoid accessing Isolate in source position logging. · b8b4a443
      rmcilroy authored
      Now that all backends use the source position builder to record source
      positions, simplify the code line logging events to take a source
      position table on code creation. This means that the source position
      table builder no longer needs to access the isolate until the table is
      generated. This is required for off-thread bytecode generation.
      
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2248673002
      Cr-Commit-Position: refs/heads/master@{#38676}
      b8b4a443
  2. 11 Aug, 2016 1 commit
  3. 10 Aug, 2016 1 commit
  4. 28 Jul, 2016 1 commit
  5. 25 Jul, 2016 1 commit
  6. 12 Jul, 2016 1 commit
  7. 11 Jul, 2016 1 commit
  8. 09 Jul, 2016 1 commit
  9. 08 Jul, 2016 2 commits
  10. 06 Jul, 2016 1 commit
    • lpy's avatar
      Expose TickSample and its APIs in v8-profiler.h · 3172f6a9
      lpy authored
      We want to eventually move the profiling functionality out of V8 as library,
      this patch exposes TickSample and its APIs in v8-profiler.h so that when
      embedders use library, they can have more details.
      
      Minor change: Rename tick-sample.[h|cc] to simulator-helper.[h|cc].
      
      BUG=v8:4789
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2105943002
      Cr-Commit-Position: refs/heads/master@{#37564}
      3172f6a9
  11. 04 Jul, 2016 1 commit
    • lpy's avatar
      Split Ticker into two samplers. · 3ca49d9a
      lpy authored
      Currently there are two logic in Ticker, one is to try to request a
      pre-allocated TickSample from CpuProfiler and then initialize it, and if the
      request fails, it will initialize a local TickSample. The other is it will pass
      an initialized TickSample to Profiler to log into v8.log.
      
      This patch splits Ticker into two samplers, the first one remains in log.cc to
      collect samples and pass to Profiler for logging, the second one will be called
      by ProfilerEventsProcessor, and only use the circular queue only.
      
      BUG=v8:4789
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2108393002
      Cr-Commit-Position: refs/heads/master@{#37506}
      3ca49d9a
  12. 30 Jun, 2016 1 commit
  13. 28 Jun, 2016 1 commit
    • alph's avatar
      Fix MSAN error on arm64 bot. · ca1dcc9c
      alph authored
      The main fix is to mark stack memory the SafeStackFrameIterator
      accesses as initialied.
      
      Drive-by: Make sure we bail out when the simulator is in the
      process of updating FP/SP registers.
      
      BUG=v8:5156
      
      Review-Url: https://codereview.chromium.org/2104763002
      Cr-Commit-Position: refs/heads/master@{#37315}
      ca1dcc9c
  14. 23 Jun, 2016 1 commit
  15. 22 Jun, 2016 1 commit
    • lpy's avatar
      [Reland] Refactor CpuProfiler. · 04f710ac
      lpy authored
      Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      from Logger, constructs and stores CodeEventsContainer. This patch is part of
      the effort to split the logic of CodeEventListener as ProfilerListener out of
      the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      to code events, construct code event to CodeEventsContainer and pass it to code
      event handler.
      
      The reason we refactor CpuProfiler is that eventually we want to move
      CpuProfiler as part of sampler library and code event listener should stay
      inside V8.
      
      Main changes:
      1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      functionality and the ProfilerListener listening to code events from Logger.
      2. Created CodeEventObserver and made CpuProfiler inherit from it.
      ProfilerListener will have a list of observers and call CodeEventHandler once a
      code event is created.
      3. Moved code entry list from CodeEntry to ProfilerListener.
      
      Minor changes:
      1. Moved static code entry as part of CodeEntry.
      2. Added ProfilerListener to Logger.
      
      BUG=v8:4789
      
      Committed: https://crrev.com/cb59fc1facc9b390e2c7544b4da56a4e0a9b3222
      Review-Url: https://codereview.chromium.org/2053523003
      Cr-Original-Commit-Position: refs/heads/master@{#37112}
      Cr-Commit-Position: refs/heads/master@{#37195}
      04f710ac
  16. 20 Jun, 2016 2 commits
    • lpy's avatar
      Revert of Refactor CpuProfiler. (patchset #13 id:240001 of... · d6be0bf6
      lpy authored
      Revert of Refactor CpuProfiler. (patchset #13 id:240001 of https://codereview.chromium.org/2053523003/ )
      
      Reason for revert:
      MIPS compilation error.
      
      Original issue's description:
      > Refactor CpuProfiler.
      >
      > Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      > from Logger, constructs and stores CodeEventsContainer. This patch is part of
      > the effort to split the logic of CodeEventListener as ProfilerListener out of
      > the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      > to code events, construct code event to CodeEventsContainer and pass it to code
      > event handler.
      >
      > The reason we refactor CpuProfiler is that eventually we want to move
      > CpuProfiler as part of sampler library and code event listener should stay
      > inside V8.
      >
      > Main changes:
      > 1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      > functionality and the ProfilerListener listening to code events from Logger.
      > 2. Created CodeEventObserver and made CpuProfiler inherit from it.
      > ProfilerListener will have a list of observers and call CodeEventHandler once a
      > code event is created.
      > 3. Moved code entry list from CodeEntry to ProfilerListener.
      >
      > Minor changes:
      > 1. Moved static code entry as part of CodeEntry.
      > 2. Added ProfilerListener to Logger.
      >
      > BUG=v8:4789
      >
      > Committed: https://crrev.com/cb59fc1facc9b390e2c7544b4da56a4e0a9b3222
      > Cr-Commit-Position: refs/heads/master@{#37112}
      
      TBR=alph@chromium.org,jochen@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2079273003
      Cr-Commit-Position: refs/heads/master@{#37113}
      d6be0bf6
    • lpy's avatar
      Refactor CpuProfiler. · cb59fc1f
      lpy authored
      Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      from Logger, constructs and stores CodeEventsContainer. This patch is part of
      the effort to split the logic of CodeEventListener as ProfilerListener out of
      the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      to code events, construct code event to CodeEventsContainer and pass it to code
      event handler.
      
      The reason we refactor CpuProfiler is that eventually we want to move
      CpuProfiler as part of sampler library and code event listener should stay
      inside V8.
      
      Main changes:
      1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      functionality and the ProfilerListener listening to code events from Logger.
      2. Created CodeEventObserver and made CpuProfiler inherit from it.
      ProfilerListener will have a list of observers and call CodeEventHandler once a
      code event is created.
      3. Moved code entry list from CodeEntry to ProfilerListener.
      
      Minor changes:
      1. Moved static code entry as part of CodeEntry.
      2. Added ProfilerListener to Logger.
      
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2053523003
      Cr-Commit-Position: refs/heads/master@{#37112}
      cb59fc1f
  17. 15 Jun, 2016 1 commit
  18. 14 Jun, 2016 2 commits
  19. 13 Jun, 2016 2 commits
  20. 10 Jun, 2016 1 commit
  21. 09 Jun, 2016 1 commit
  22. 07 Jun, 2016 1 commit
  23. 06 Jun, 2016 1 commit
  24. 31 May, 2016 2 commits
  25. 26 May, 2016 2 commits
    • mythria's avatar
      Adds support for collecting statistics about code and its metadata. · c1af2821
      mythria authored
      Adds an API to request the total size of code/bytecode and their associated
      metadata in the heap. When requested, the code_space, old_space and
      large_object_space  is scanned to find any code/bytecode array objects.
      This could be slow and hence it should be used with caution.
      
      BUG=v8:5019
      LOG=N
      
      Review-Url: https://codereview.chromium.org/1997363002
      Cr-Commit-Position: refs/heads/master@{#36534}
      c1af2821
    • lpy's avatar
      Reland: Create libsampler as V8 sampler library. · a0198c0f
      lpy authored
      This patch does five things:
      
      1. Extracts sampler as libsampler to provide sampling functionality support.
      2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      3. Removes sampler.[h|cc].
      4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      5. Creates SamplerManager to manage the relationship between samplers and threads.
      
      The reason we port hashmap.h is that in debug mode, STL containers are using
      mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      signal handler.
      
      Currently libsampler is used in V8 temporarily.
      
      BUG=v8:4789
      LOG=n
      
      Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b
      Cr-Commit-Position: refs/heads/master@{#36527}
      
      Review-Url: https://codereview.chromium.org/1922303002
      Cr-Commit-Position: refs/heads/master@{#36532}
      a0198c0f
  26. 25 May, 2016 2 commits
    • lpy's avatar
      Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of... · 636f1e8e
      lpy authored
      Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of https://codereview.chromium.org/1922303002/ )
      
      Reason for revert:
      V8 Linux64 TSAN failure because ThreadSanitizer indicated data race.
      
      Original issue's description:
      > Create libsampler as V8 sampler library.
      >
      > This patch does five things:
      >
      > 1. Extracts sampler as libsampler to provide sampling functionality support.
      > 2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      > 3. Removes sampler.[h|cc].
      > 4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      > 5. Creates SamplerManager to manage the relationship between samplers and threads.
      >
      > The reason we port hashmap.h is that in debug mode, STL containers are using
      > mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      > signal handler.
      >
      > Currently libsampler is used in V8 temporarily.
      >
      > BUG=v8:4789
      > LOG=n
      >
      > Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b
      > Cr-Commit-Position: refs/heads/master@{#36527}
      
      TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2000323007
      Cr-Commit-Position: refs/heads/master@{#36529}
      636f1e8e
    • lpy's avatar
      Create libsampler as V8 sampler library. · 06cc9b7c
      lpy authored
      This patch does five things:
      
      1. Extracts sampler as libsampler to provide sampling functionality support.
      2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      3. Removes sampler.[h|cc].
      4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      5. Creates SamplerManager to manage the relationship between samplers and threads.
      
      The reason we port hashmap.h is that in debug mode, STL containers are using
      mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      signal handler.
      
      Currently libsampler is used in V8 temporarily.
      
      BUG=v8:4789
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1922303002
      Cr-Commit-Position: refs/heads/master@{#36527}
      06cc9b7c
  27. 24 May, 2016 1 commit
  28. 20 May, 2016 1 commit
    • ulan's avatar
      Workaround for glibc semaphore bug. · 84ee9470
      ulan authored
      Instead of dynamically creating semaphore for each page parallel job,
      we create one semaphore for MarkCompact and reuse it.
      
      This patch also removes all instrumentation code that was added to
      help with investigation.
      
      BUG=chromium:609249
      LOG=NO
      
      Review-Url: https://codereview.chromium.org/1998213002
      Cr-Commit-Position: refs/heads/master@{#36407}
      84ee9470
  29. 18 May, 2016 2 commits
  30. 13 May, 2016 1 commit
  31. 12 May, 2016 1 commit
    • oth's avatar
      [interpreter] Introduce bytecode generation pipeline. · 02b7373a
      oth authored
      This change introduces a pipeline for the final stages of
      bytecode generation.
      
      The peephole optimizer is made distinct from the BytecodeArrayBuilder.
      
      A new BytecodeArrayWriter is responsible for writing bytecode. It
      also keeps track of the maximum register seen and offers a potentially
      smaller frame size.
      
      R=rmcilroy@chromium.org
      LOG=N
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/1947403002
      Cr-Commit-Position: refs/heads/master@{#36220}
      02b7373a
  32. 09 May, 2016 1 commit