1. 23 Oct, 2015 1 commit
    • zhengxing.li's avatar
      X87: Re-reland: Remove register index/code indirection. · 2e5845f1
      zhengxing.li authored
          port 5cf1c0bc (r31087).
      
          original commit message:
          Previous to this patch, both the lithium and TurboFan register
          allocators tracked allocated registers by "indices", rather than
          the register codes used elsewhere in the runtime. This patch
          ensures that codes are used everywhere, and in the process cleans
          up a bunch of redundant code and adds more structure to how the
          set of allocatable registers is defined.
      
          Some highlights of changes:
      
          * TurboFan's RegisterConfiguration class moved to V8's top level
            so that it can be shared with Crankshaft.
          * Various "ToAllocationIndex" and related methods removed.
          * Code that can be easily shared between Register classes on
            different platforms is now shared.
          * The list of allocatable registers on each platform is declared
            as a list rather than implicitly via the register index <->
            code mapping.
      
          additional comment:
          This patch must be work with CL https://codereview.chromium.org/1405673003/
          and CL https://codereview.chromium.org/1413343002/
          which provide the needed register allocation common code change in
          v8 for this CL
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1410393004
      
      Cr-Commit-Position: refs/heads/master@{#31494}
      2e5845f1
  2. 20 Oct, 2015 1 commit
  3. 30 Sep, 2015 1 commit
  4. 11 Aug, 2015 1 commit
    • mstarzinger's avatar
      Remove several grab-bag includes from the v8.h header. · 58109a2c
      mstarzinger authored
      This is the first step of turning the v8.h file into a normal header
      instead of an include-the-world header. The new rule is that no other
      header files are allowed to include v8.h, which is enforced by DEPS.
      
      Also the number of includes inside the v8.h file has been drastically
      reduced. Basically the last missing piece is the inclusion of the big
      objects-inl.h file.
      
      This in turn makes many headers follow the IWYU principle.
      
      R=bmeurer@chromium.org,hpayer@chromium.org,titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1282503003
      
      Cr-Commit-Position: refs/heads/master@{#30102}
      58109a2c
  5. 20 Apr, 2015 1 commit
  6. 02 Sep, 2014 1 commit
  7. 03 Jun, 2014 1 commit
  8. 23 May, 2014 1 commit
  9. 29 Apr, 2014 1 commit
  10. 20 Aug, 2013 3 commits
  11. 18 Dec, 2012 1 commit
  12. 10 Dec, 2012 1 commit
  13. 05 Dec, 2012 1 commit
  14. 03 Dec, 2012 2 commits
  15. 30 Nov, 2012 2 commits
  16. 19 Jan, 2011 1 commit
  17. 17 Jan, 2011 1 commit
    • kmillikin@chromium.org's avatar
      Change the algorithm and generated code for parallel moves on IA32. · 437914da
      kmillikin@chromium.org authored
      Instead of spilling and then immediately restoring eax to resolve
      memory to memory moves, the gap move resolver now tracks registers
      that are known to be free and uses one if available.  If not it spills
      but restores lazily when the spilled value is needed or at the end of
      the algorithm.
      
      Instead of using esi for resolving cycles and assuming it is free to
      overwrite because it can be rematerialized, the gap move resolver now
      resolves cycles using swaps, possibly using a free register as above.
      
      The algorithm is also changed to be simpler: a recursive depth-first
      traversal of the move dependence graph.  It uses a list of moves to be
      performed (because it mutates the moves themselves), but does not use
      any auxiliary structure other than the control stack.  It does not
      build up a separate list of scheduled moves to be interpreted by the
      code generate, but emits code on the fly.
      
      Review URL: http://codereview.chromium.org/6263005
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      437914da