1. 25 Jul, 2016 1 commit
  2. 18 Jul, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Add support for eager/soft deoptimization reasons. · db635d5b
      bmeurer authored
      So far TurboFan wasn't adding the deoptimization reasons for eager/soft
      deoptimization exits that can be used by either the DevTools profiler or
      the --trace-deopt flag. This adds basic support for deopt reasons on
      Deoptimize, DeoptimizeIf and DeoptimizeUnless nodes and threads through
      the reasons to the code generation.
      
      Also moves the DeoptReason to it's own file (to resolve include cycles)
      and drops unused reasons.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2161543002
      Cr-Commit-Position: refs/heads/master@{#37823}
      db635d5b
  3. 29 Jun, 2016 1 commit
  4. 16 Jun, 2016 1 commit
    • ishell's avatar
      [ic] LoadICState cleanup. · 5fcd3eb8
      ishell authored
      LoadICState was used to hold the TypeofMode flag which is relevant only for LoadGlobalIC.
      This CL removes usage of this state from LoadIC and KeyedLoadIC and renames the state
      class to LoadGlobalICState.
      
      BUG=chromium:576312
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/2065373003
      Cr-Commit-Position: refs/heads/master@{#37033}
      5fcd3eb8
  5. 14 Jun, 2016 1 commit
    • ishell's avatar
      [ic] Split LoadIC into LoadGlobalIC and LoadIC. · d9e8764f
      ishell authored
      The former will handle loads of predeclared global variables (vars and
      functions), lets, consts and undeclared variables. The latter will handle
      named loads from explicit receiver. In addition, named loads does not
      depend of the TypeofMode.
      
      TypeofMode related cleanup will be done in the follow-up CL.
      
      BUG=chromium:576312
      LOG=Y
      TBR=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/1912633002
      Cr-Commit-Position: refs/heads/master@{#36965}
      d9e8764f
  6. 09 Jun, 2016 1 commit
    • ishell's avatar
      [ic] [stubs] Remove InlineCacheState field from the code flags. · 9dc62d27
      ishell authored
      There are no ICs left that store their state in this field: vector based
      ICs use feedback vector and the rest three (BinaryOpIC, CompareIC and
      ToBooleanIC) reconstruct their state from the ExtraICState field.
      
      This CL also removes unused InlineCacheState::DEBUG_STUB which was used
      mostly in Code::is_debug_stub(). The latter now checks if the code is one
      of the debug builtins instead.
      
      BUG=chromium:618701
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/2052763003
      Cr-Commit-Position: refs/heads/master@{#36871}
      9dc62d27
  7. 24 May, 2016 1 commit
  8. 13 May, 2016 1 commit
  9. 11 May, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Pass inlining_id via relocation info. · 32049620
      mstarzinger authored
      This passes the inlining_id of deoptimization points via the relocation
      info instead of via a side-channel to the CPU profiler. This is one step
      towards deprecating the side-channel in question and avoid the need for
      performing a lookup of the return address of the deopt point.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/1956693002
      Cr-Commit-Position: refs/heads/master@{#36177}
      32049620
  10. 12 Apr, 2016 1 commit
  11. 11 Apr, 2016 2 commits
  12. 08 Apr, 2016 2 commits
    • jfb's avatar
      Revert of Fix printf formats (patchset #8 id:140001 of... · 4c4fdc2d
      jfb authored
      Revert of Fix printf formats (patchset #8 id:140001 of https://codereview.chromium.org/1869433004/ )
      
      Reason for revert:
      One small issue easily fixed here: https://codereview.chromium.org/1867333003/
      
      But it looks like MSVS 2013 doesn't like some of the formats and exists with the unhelpful:
      Stderr:
      f:\dd\vctools\crt\crtw32\stdio\output.c(1125) : Assertion failed: ("Incorrect
      format specifier", 0)
      
      It's easier to revert for now, I'll dig more into the docs:
      https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx
      https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.120).aspx
      
      And then resubmit, making sure I run these bots.
      
      Original issue's description:
      > Fix printf formats
      >
      > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
      >
      >  - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
      >  - Uses it appropriately.
      >  - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
      >  - Fixes a bunch of incorrect formats.
      >
      > R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org
      >
      > Committed: https://crrev.com/6ebf9fbb93d31f9be41156a3325d58704ed4933d
      > Cr-Commit-Position: refs/heads/master@{#35365}
      
      TBR=jochen@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,ahaas@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1867383002
      
      Cr-Commit-Position: refs/heads/master@{#35366}
      4c4fdc2d
    • jfb's avatar
      Fix printf formats · 6ebf9fbb
      jfb authored
      The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
      
       - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
       - Uses it appropriately.
       - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
       - Fixes a bunch of incorrect formats.
      
      R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org
      
      Review URL: https://codereview.chromium.org/1869433004
      
      Cr-Commit-Position: refs/heads/master@{#35365}
      6ebf9fbb
  13. 06 Apr, 2016 1 commit
    • verwaest's avatar
      Use a dictionary-mode code cache on the map rather than a dual system. · d2eb555e
      verwaest authored
      The previous code cache system required stubs to be marked with a StubType, causing them to be inserted either into a fixed array or into a dictionary-mode code cache. This could cause names to be in both cases, and lookup would just find the "fast" one first. Given that we clear out the caches on each GC, the memory overhead shouldn't be too bad. Additionally, the dictionary itself should just stay linear for small arrays; that's faster anyway.
      
      This CL additionally deletes some dead IC code.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1846963002
      
      Cr-Commit-Position: refs/heads/master@{#35291}
      d2eb555e
  14. 01 Mar, 2016 1 commit
  15. 30 Nov, 2015 1 commit
  16. 27 Nov, 2015 1 commit
  17. 09 Nov, 2015 1 commit
    • mtrofin's avatar
      [assembler] Introduce proper AssemblerBase::Print() for improved debuggability. · ab1d270a
      mtrofin authored
      While working on frame elision, I wanted to disassemble codegen in the
      debugger, as the code generation is progressing. I discovered we had a
       "Print" member on the x64 assembler, without any implementation. I
      pulled it up to AssemblerBase and gave it an implementation that
      should work for the other architectures.
      
      Also checked that ia32, x87, arm and arm64 assemblers didn't have
      such an implementation - free Print.
      
      Arm64 has a naming conflict with the v8::internal::Disassembler. I
      renamed the arm64 type with a more specific name.
      
      Opportunistically fixed a bug in the name converter. This debug-time
      printer doesn't provide a Code object, which should be OK with the
      name converters, by the looks of other APIs there. All this means is that
      when using the Print() API, we just get addresses dumped without any
      context (like what this address may be - a stub maybe, etc). This seems
      fine for the scenario.
      
      There may be other places that assume a Code object. Since this is
      a diagnostics-only scenario, for codegen developers, I feel it is
      reasonable to fix such other places as we find them.
      
      Review URL: https://codereview.chromium.org/1431933003
      
      Cr-Commit-Position: refs/heads/master@{#31869}
      ab1d270a
  18. 24 Aug, 2015 1 commit
    • rmcilroy's avatar
      Add CompileInfo::GetDebugName() · 53ac9fe8
      rmcilroy authored
      Replaces all instances of the code which computed the debug
      name of a stub or function with calls to CompileInfo::GetDebugName instead.
      
      Also:
        - Removes useless parameter on CodeStub::GetMajorName
        - Removes FakeStubForTesting since it is no longer required
        - Adds CompileInfo::ShouldEnsureSpaceForLazyDeopt() to replace unclear calls to IsStub().
      
      Review URL: https://codereview.chromium.org/1297203002
      
      Cr-Commit-Position: refs/heads/master@{#30324}
      53ac9fe8
  19. 14 Aug, 2015 1 commit
  20. 31 Jul, 2015 1 commit
  21. 13 Jul, 2015 2 commits
  22. 10 Jul, 2015 1 commit
    • yangguo's avatar
      Debugger: use debug break slot to break on call. · 8965b683
      yangguo authored
      Break point at calls are currently set via IC. To change this, we
      need to set debug break slots instead. We also need to distinguish
      those debug break slots as calls to support step-in.
      
      To implement this, we add a data field to debug break reloc info to
      indicate non-call debug breaks or in case of call debug breaks, the
      number of arguments. We can later use this to find the callee on the
      evaluation stack in Debug::PrepareStep.
      
      BUG=v8:4269
      R=ulan@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/1222093007
      
      Cr-Commit-Position: refs/heads/master@{#29561}
      8965b683
  23. 03 Jul, 2015 1 commit
  24. 16 Jun, 2015 1 commit
    • mstarzinger's avatar
      Revert of Decompiler improvements. (patchset #2 id:20001 of... · e2ce4681
      mstarzinger authored
      Revert of Decompiler improvements. (patchset #2 id:20001 of https://codereview.chromium.org/1177123002/)
      
      Reason for revert:
      Code printout has become unreadable. Offsets are printed in decimal numbers everywhere else. This is inconsistent with the rest of the code-base. Some examples are tables for deoptimization data, safepoints and exception handlers. I would be fine with this change if _all_ tracing would be adapted. But there are _many_ places to touch.
      
      Original issue's description:
      > Decompiler improvements.
      >
      > The main motivation is simplifying profiling activities:
      >
      > 1) Use hex instead of decimal for offsets, just like perf does. This
      > affects --print-opt-code
      >
      > 2) When printing block information, indicate loop information: if
      > block is header, where the end is; if block is in a loop, where the
      > loop starts. This affects --code-comments.
      >
      > Using --print-opt-code --code-comments, and cross-referencing with data
      > obtained from perf, one may now find the block a hotspot belongs to
      > without needing to do hex2dec/dec2hex conversions. Once found, loop info
      > is available locally, on the block.
      >
      > BUG=
      >
      > Committed: https://crrev.com/32f4bd659d38eb5485eedb1d0dd236ff1bdc01d5
      > Cr-Commit-Position: refs/heads/master@{#28964}
      
      TBR=jarin@chromium.org,stichnot@chromium.org,jvoung@chromium.org,mtrofin@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1188093002
      
      Cr-Commit-Position: refs/heads/master@{#29046}
      e2ce4681
  25. 11 Jun, 2015 1 commit
    • mtrofin's avatar
      Decompiler improvements. · 32f4bd65
      mtrofin authored
      The main motivation is simplifying profiling activities:
      
      1) Use hex instead of decimal for offsets, just like perf does. This
      affects --print-opt-code
      
      2) When printing block information, indicate loop information: if
      block is header, where the end is; if block is in a loop, where the
      loop starts. This affects --code-comments.
      
      Using --print-opt-code --code-comments, and cross-referencing with data
      obtained from perf, one may now find the block a hotspot belongs to
      without needing to do hex2dec/dec2hex conversions. Once found, loop info
      is available locally, on the block.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1177123002
      
      Cr-Commit-Position: refs/heads/master@{#28964}
      32f4bd65
  26. 01 Jun, 2015 1 commit
  27. 27 Mar, 2015 1 commit
  28. 06 Mar, 2015 1 commit
    • yangguo's avatar
      Serializer: simplify external reference encoding. · a8e82da6
      yangguo authored
      External references are encoded as a tuple of type and ID. This
      requires both the external reference encode and the decoder to
      create a mapping between the encoding and the external reference
      table index.
      
      Instead, we simply use the external reference table index as
      encoding.
      
      We now also assume that there are no duplicate entries. Existing
      duplicates have been removed in this change.
      
      R=vogelheim@chromium.org
      
      Review URL: https://codereview.chromium.org/982773003
      
      Cr-Commit-Position: refs/heads/master@{#27033}
      a8e82da6
  29. 05 Mar, 2015 1 commit
  30. 20 Feb, 2015 1 commit
    • michael_dawson's avatar
      Contribution of PowerPC port (continuation of 422063005) - PPC dir update 2 - mark2 · 0fb091fc
      michael_dawson authored
      Rebase to latest and use branch created by git new-branch to get a patch that
      only has the required changes.  Created new branch, reset to HEAD and then
      cherry picked across the changes
      
      	modified:   src/compiler/ppc/code-generator-ppc.cc
      	modified:   src/compiler/ppc/instruction-selector-ppc.cc
      	modified:   src/disassembler.cc
      	modified:   src/ic/ppc/handler-compiler-ppc.cc
      	modified:   src/ic/ppc/ic-compiler-ppc.cc
      	modified:   src/ppc/assembler-ppc-inl.h
      	modified:   src/ppc/assembler-ppc.cc
      	modified:   src/ppc/assembler-ppc.h
      	modified:   src/ppc/builtins-ppc.cc
      	modified:   src/ppc/code-stubs-ppc.cc
      	modified:   src/ppc/deoptimizer-ppc.cc
      	modified:   src/ppc/disasm-ppc.cc
      	modified:   src/ppc/full-codegen-ppc.cc
      	modified:   src/ppc/macro-assembler-ppc.cc
      	modified:   src/serialize.cc
      
      R=danno@chromium.org, svenpanne@chromium.org
      
      Review URL: https://codereview.chromium.org/935383002
      
      Cr-Commit-Position: refs/heads/master@{#26762}
      0fb091fc
  31. 09 Feb, 2015 1 commit
  32. 05 Feb, 2015 3 commits
  33. 04 Feb, 2015 2 commits
    • loislo's avatar
      Revert of Externalize deoptimization reasons. (patchset #6 id:100001 of... · bfc5d83b
      loislo authored
      Revert of Externalize deoptimization reasons. (patchset #6 id:100001 of https://codereview.chromium.org/874323003/)
      
      Reason for revert:
      it broke the build
      
      Original issue's description:
      > Externalize deoptimization reasons.
      >
      > 1) The hardcoded strings were converted into DeoptReason enum.
      >
      > 2) Deopt comment were converted into a pair location and deopt reason entries so
      > the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
      >
      > 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
      >
      > BUG=452067
      > LOG=n
      >
      > Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6
      > Cr-Commit-Position: refs/heads/master@{#26434}
      
      TBR=alph@chromium.org,mstarzinger@chromium.org,svenpanne@chromium.org,yurys@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=452067
      
      Review URL: https://codereview.chromium.org/892843007
      
      Cr-Commit-Position: refs/heads/master@{#26435}
      bfc5d83b
    • loislo's avatar
      Externalize deoptimization reasons. · c49820e4
      loislo authored
      1) The hardcoded strings were converted into DeoptReason enum.
      
      2) Deopt comment were converted into a pair location and deopt reason entries so
      the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
      
      3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
      
      BUG=452067
      LOG=n
      
      Review URL: https://codereview.chromium.org/874323003
      
      Cr-Commit-Position: refs/heads/master@{#26434}
      c49820e4
  34. 30 Jan, 2015 1 commit