1. 29 Sep, 2017 3 commits
  2. 28 Sep, 2017 4 commits
  3. 26 Sep, 2017 1 commit
  4. 15 Sep, 2017 1 commit
  5. 14 Sep, 2017 1 commit
  6. 13 Sep, 2017 4 commits
  7. 11 Sep, 2017 1 commit
  8. 09 Sep, 2017 1 commit
    • Anisha Rohra's avatar
      s390/PPC: Make Register et al. real classes · 0b491c89
      Anisha Rohra authored
      Port 9e995e12
      Port 408f252b
      
        Up to now, each architecture defined all Register types as structs,
        with lots of redundancy. An often found comment noted that they cannot
        be classes due to initialization order problems. As these problems are
        gone with C++11 constexpr constants, I now tried making Registers
        classes again.
        All register types now inherit from RegisterBase, which provides a
        default set of methods and named constructors (like ::from_code,
        code(), bit(), is_valid(), ...).
        This design allows to guarantee an interesting property: Each register
        is either valid, or it's the no_reg register. There are no other
        invalid registers. This is guaranteed statically by the constexpr
        constructor, and dynamically by ::from_code.
      
        I decided to disallow the default constructor completely, so instead of
        "Register reg;" you now need "Register reg = no_reg;". This makes
        explicit how the Register is initialized.
      
        I did this change to the x64, ia32, arm, arm64, mips and mips64 ports.
        Overall, code got much more compact and more safe. In theory, it should
        also increase performance (since the is_valid() check is simpler), but
        this is probably not measurable.
      
      R=bjaideep@ca.ibm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I2e87efc8790290c64fd6c0a2d093326710b30ed3
      Reviewed-on: https://chromium-review.googlesource.com/658065Reviewed-by: 's avatarJaideep Bajwa <bjaideep@ca.ibm.com>
      Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#47933}
      0b491c89
  9. 07 Sep, 2017 1 commit
  10. 06 Sep, 2017 1 commit
    • Clemens Hammacher's avatar
      [assembler] Make Register et al. real classes · 9e995e12
      Clemens Hammacher authored
      Up to now, each architecture defined all Register types as structs,
      with lots of redundancy. An often found comment noted that they cannot
      be classes due to initialization order problems. As these problems are
      gone with C++11 constexpr constants, I now tried making Registers
      classes again.
      All register types now inherit from RegisterBase, which provides a
      default set of methods and named constructors (like ::from_code,
      code(), bit(), is_valid(), ...).
      This design allows to guarantee an interesting property: Each register
      is either valid, or it's the no_reg register. There are no other
      invalid registers. This is guaranteed statically by the constexpr
      constructor, and dynamically by ::from_code.
      
      I decided to disallow the default constructor completely, so instead of
      "Register reg;" you now need "Register reg = no_reg;". This makes
      explicit how the Register is initialized.
      
      I did this change to the x64, ia32, arm, arm64, mips and mips64 ports.
      Overall, code got much more compact and more safe. In theory, it should
      also increase performance (since the is_valid() check is simpler), but
      this is probably not measurable.
      
      R=mstarzinger@chromium.org
      
      Change-Id: I5ccfa4050daf4e146a557970e9d37fd3d2788d4a
      Reviewed-on: https://chromium-review.googlesource.com/650927Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47847}
      9e995e12
  11. 05 Sep, 2017 2 commits
  12. 01 Sep, 2017 4 commits
  13. 31 Aug, 2017 3 commits
  14. 30 Aug, 2017 2 commits
  15. 28 Aug, 2017 1 commit
    • Georg Neis's avatar
      Revert "Remove obsolete kNumber binop feedback." · b4712d52
      Georg Neis authored
      This reverts commit 1169f55b.
      
      Reason for revert: http://crbug.com/758994
      
      Original change's description:
      > Remove obsolete kNumber binop feedback.
      > 
      > With the removal of Crankshaft, kNumber has become obsolete as
      > BinaryOperationFeedback. Turbofan uses kNumberOrOddball.
      > 
      > Bug: 
      > Change-Id: If577f5efcc81d7c08f43908f2764ff0ec6f8747c
      > Reviewed-on: https://chromium-review.googlesource.com/628376
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Mythri Alle <mythria@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47555}
      
      TBR=jkummerow@chromium.org,jarin@chromium.org,neis@chromium.org,mythria@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: I1b33f572f3e6865e00d2468bffcce2ea466814b3
      Reviewed-on: https://chromium-review.googlesource.com/637711Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47642}
      b4712d52
  16. 26 Aug, 2017 1 commit
    • Jakob Kummerow's avatar
      [modules] Speed up access to module exports · 24b88776
      Jakob Kummerow authored
      By adding LoadIC support for JSModuleNamespace objects. The index
      of the corresponding slot in the Module's "exports" dictionary is
      cached in the feedback vector, so the value can be loaded directly,
      without having to call the C++ accessor.
      This speeds up the "foo" property access in code like the following
      snippet by about 10x:
        import * as m from "module.js"
        m.foo;
      
      Bug: v8:1569
      Change-Id: I152abedcbdc6f90b5bedd203cfdf97ed88d1137c
      Reviewed-on: https://chromium-review.googlesource.com/631136
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47625}
      24b88776
  17. 24 Aug, 2017 1 commit
  18. 23 Aug, 2017 3 commits
  19. 22 Aug, 2017 2 commits
  20. 21 Aug, 2017 2 commits
  21. 18 Aug, 2017 1 commit
    • Jakob Kummerow's avatar
      Cache fewer StoreIC-Transition handlers · a3ef2489
      Jakob Kummerow authored
      Many handlers are not used again, so we can improve the cache hit rate
      by caching fewer handlers. Specifically, in this CL, when a StoreIC
      miss causes a new map transition to be created, then the handler is not
      cached right away yet (it will be cached next time, when the transition
      exists already).
      
      Also, fix an embarrassing bug where growing a TransitionArray dropped
      cached handlers. That further improves the cache hit rate. ;-)
      
      Bug: chromium:752867, chromium:753819
      Change-Id: Id8db5ca1e780a5fe8fc61db7f20996e61c65a90e
      Reviewed-on: https://chromium-review.googlesource.com/619851Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47433}
      a3ef2489