1. 17 Nov, 2017 1 commit
    • Clemens Hammacher's avatar
      [handles] Use is_convertible instead of is_base_of · f8072dbd
      Clemens Hammacher authored
      std::is_base_of<A, B> has undefined behaviour if B is not a complete
      type. Hence, avoid it and use is_convertible<B*, A*> instead.
      This captures exactly the requirement that
        Handle<A> foo() { return produce<Handle<B>>(); }
      is valid exactly if
        A* foo() { return produce<B>(); }
      is valid.
      Also, change some static asserts to enable_ifs in order to allow
      overloading a function by different Handle types, which would cause
      disambiguity otherwise.
      
      R=tebbi@chromium.org
      
      Change-Id: I60fbdfcfd96c7b216e42819a5b5de3423a2c38d0
      Reviewed-on: https://chromium-review.googlesource.com/774841Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49440}
      f8072dbd
  2. 13 Oct, 2017 1 commit
  3. 13 Sep, 2017 1 commit
  4. 08 Aug, 2017 1 commit
  5. 31 Jul, 2017 1 commit
  6. 14 Jul, 2017 1 commit
  7. 20 Jun, 2017 1 commit
  8. 16 May, 2017 1 commit
  9. 05 Apr, 2017 1 commit
  10. 14 Mar, 2017 1 commit
  11. 28 Feb, 2017 1 commit
  12. 22 Feb, 2017 1 commit
  13. 10 Feb, 2017 3 commits
  14. 09 Jan, 2017 1 commit
  15. 17 Oct, 2016 1 commit
  16. 27 Sep, 2016 1 commit
  17. 26 Sep, 2016 1 commit
    • jgruber's avatar
      Enable component builds for fuzzers · 22606f0c
      jgruber authored
      V8 is collecting a growing amount of fuzzers, all of which take substantial
      space on the bots and in chromium build archives. This CL improves that
      situation by allowing component (shared library) builds for almost all fuzzers.
      
      The parser fuzzer is handled as an exception since it would require exporting a
      large number of additional functions.
      
      A component build results in about a 50-100x improvement in file size for each
      fuzzer (~50M-100M to around 1.1M).
      
      BUG=chromium:648864
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.android:android_clang_dbg_recipe
      
      Review-Url: https://codereview.chromium.org/2360983002
      Cr-Commit-Position: refs/heads/master@{#39709}
      22606f0c
  18. 20 Sep, 2016 1 commit
  19. 15 Sep, 2016 1 commit
  20. 25 Aug, 2016 1 commit
  21. 28 Jul, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Refactor the lowering of element/property accesses. · 1bce2790
      bmeurer authored
      Split the monster methods in JSNativeContextSpecialization into smaller
      ones, adding appropriate helpers. Improve the condition checking for
      strings and numbers using CheckString/CheckNumber when applicable. Also
      try to merge compatible PropertyAccessInfos, to avoid running into the
      polymorphic case whenever possible.
      
      Drive-by-fix: Don't try to resurrect dead nodes during LoadElimination.
      With the improve code generation for monomorphic loads, we seem to
      trigger the dead node resurrection.
      
      R=epertoso@chromium.org
      BUG=v8:4930,v8:5141
      
      Review-Url: https://codereview.chromium.org/2191823002
      Cr-Commit-Position: refs/heads/master@{#38127}
      1bce2790
  22. 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
  23. 28 Apr, 2016 2 commits
  24. 18 Nov, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Decouple inlining and native context specialization. · 9b14e5bb
      bmeurer authored
      Retrieve the native context/global object from the Node being
      specialized in the JSNativeContextSpecialization and the
      JSGlobalObjectSpecialization classes. For this we introduce two
      new methods NodeProperties::GetSpecializationNativeContext and
      NodeProperties::GetSpecializationGlobalObject, which walk up
      the context chain and might in the end take the native context
      from the outermost activation (if native context specialization
      is enabled). This allows us to run the native context specialization
      pass as part of the inlining phase without hacking some of that into
      the JSInliner.
      
      Also refactor the NodeProperties::GetSpecializationContext method
      that was previously local to the JSContextSpecialization.
      
      Also refactor two other oddities in JSNativeContextSpecialization.
      
      R=jarin@chromium.org
      BUG=v8:4470, v8:4493
      LOG=n
      
      Review URL: https://codereview.chromium.org/1451143005
      
      Cr-Commit-Position: refs/heads/master@{#32076}
      9b14e5bb
  25. 26 Oct, 2015 3 commits
  26. 31 Aug, 2015 2 commits
    • mstarzinger's avatar
      Drop ambiguous MaybeHandle comparison and hashing ops. · 51fa9e52
      mstarzinger authored
      The default equality comparison operators and hashing functions for
      Handles are ambiguous. The intended semantics might have either been
      based on Handle locations or on object identity. This is why such
      operators do not exist on Handle. The same argument applies to the
      MaybeHandle class as well. Comments in that regard were also added.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1319383002
      
      Cr-Commit-Position: refs/heads/master@{#30468}
      51fa9e52
    • mstarzinger's avatar
      [turbofan] Remove usage of Unique<T> from graph. · 6e65e6db
      mstarzinger authored
      The usage of Unique<T> throughout the TurboFan IR does not have any
      advantage. There is no single point in time when they are initialized
      and most use-sites looked through to the underlying Handle<T> anyways.
      Also there already was a mixture of Handle<T> versus Unique<T> in the
      graph and this unifies the situation to use Handle<T> everywhere.
      
      R=bmeurer@chromium.org,titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1314473007
      
      Cr-Commit-Position: refs/heads/master@{#30458}
      6e65e6db
  27. 11 Aug, 2015 1 commit
  28. 15 Jul, 2015 3 commits
  29. 01 Jul, 2015 1 commit
  30. 29 Jun, 2015 1 commit
  31. 26 Jun, 2015 1 commit
  32. 22 Jun, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Revive the VectorSlotPair and also put feedback on JSCallFunction. · d4f70f8c
      bmeurer authored
      We resurrect the VectorSlotPair in order to be able to separate the
      feedback input for the compiler from the actual type feedback vector
      that is required to meet the IC requirements at runtime. This will allow
      us to for example use feedback from a different context or divide the
      type feedback vector into two separate vectors, without having to touch
      the compiler. It'll allow use to load the vector from the shared
      function info at runtime, while still consuming feedback in the
      compiler (i.e. we don't rely on the feedback vector node to be a heap
      constant).
      
      R=mvstanton@chromium.org
      
      Review URL: https://codereview.chromium.org/1198983002
      
      Cr-Commit-Position: refs/heads/master@{#29185}
      d4f70f8c