1. 22 Jun, 2016 1 commit
  2. 02 Feb, 2016 1 commit
    • jarin's avatar
      Remove the template magic from types.(h|cc), remove types-inl.h. · ef35f11c
      jarin authored
      This CL removes the Config templatization from the types. It is not
      necessary anymore, after the HeapTypes have been removed.
      
      The CL also changes the type hierarchy - the specific type kinds are
      not inner classes of the Type class and they do not inherit from Type.
      This is partly because it seems impossible to make this work without
      templates. Instead, a new TypeBase class is introduced and all the
      structural (i.e., non-bitset) types inherit from it.
      
      The bitset type still requires the bit-munging hack and some nasty
      reinterpret-casts to pretend bitsets are of type Type*. Additionally,
      there is now the same hack for TypeBase - all pointers to the sub-types
      of TypeBase are reinterpret-casted to Type*. This is to keep the type
      constructors in inline method definitions (although it is unclear how
      much that actually buys us).
      
      In future, we would like to move to a model where we encapsulate Type*
      into a class (or possibly use Type where we used to use Type*). This
      would loosen the coupling between bitset size and pointer size, and
      eventually we would be able to have more bits.
      
      TBR=bradnelson@chromium.org
      
      Review URL: https://codereview.chromium.org/1655833002
      
      Cr-Commit-Position: refs/heads/master@{#33656}
      ef35f11c
  3. 24 Nov, 2015 1 commit
  4. 28 Oct, 2015 1 commit
  5. 26 Oct, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Properly type field access to stable heap object maps. · 44b9122d
      bmeurer authored
      Introduce new typing rules for LoadField[Map], which try to take into
      account stable map information if the object either has type Constant or
      type Class. If the map of the object is stable but can transition we
      have to introduce a code dependency in the Typer to make sure that the
      information (the Constant type we infer for LoadField[Map]) is valid
      (and stays valid).
      
      This also settles the policy for depending on map stability: The
      definition can introduce any number of maps, without having to pay
      attention to stability (i.e. you can always use Type::Class to introduce
      a map that is propagated along the value edges), and the use site is
      responsible for checking that the type information is valid before using
      it. I.e. if you use stable map information, you'll have to add a
      stability dependency (or make sure the map cannot transition).
      
      Drive-by-improvement: Add ReferenceEqualTyper which takes input types
      into account for improved constant folding.
      
      Drive-by-fix: Apply policy mentioned above to JSNativeContextSpecialization.
      
      R=jarin@chromium.org, rossberg@chromium.org
      BUG=v8:4470
      LOG=n
      
      Review URL: https://codereview.chromium.org/1410953006
      
      Cr-Commit-Position: refs/heads/master@{#31567}
      44b9122d
  6. 26 Aug, 2015 1 commit
  7. 30 Jun, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Remove unused constructor function matching from typer. · 722e2e2b
      bmeurer authored
      This optimization never triggers currently, and is inherently native
      context dependent for no real reason (for example it will not properly
      detect those constructors in the case of cross native context inlining),
      plus it is slow and awkward.  In case we really need this functionality
      at some point, we should find a way to make it work with the builtin
      function id mechanism that is already in place to match other builtins.
      
      R=jarin@chromium.org,rossberg@chromium.org
      
      Review URL: https://codereview.chromium.org/1221683006
      
      Cr-Commit-Position: refs/heads/master@{#29365}
      722e2e2b
  8. 24 Jun, 2015 2 commits
  9. 22 Jun, 2015 1 commit
  10. 17 Jun, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Fix life time and use of the Typer. · a4f06027
      bmeurer authored
      Currently the Typer is installed on the Graph, no matter if we actually
      use the types or not (read: even in the generic pipeline). Also the
      Typer tries hard to eagerly type nodes during graph building, which
      takes time, just to remove those types later again, and retype
      everything from scratch. Plus this is inconsistent, since it only
      applies to the outermost graph, not the inlined graphs (which are
      eagerly typed once the nodes are copied). So in summary, what's
      currently implemented is neither useful nor well defined, so for now we
      stick to the full typing approach until a proper design for eager typing
      is available that will actually benefit us.
      
      R=rossberg@chromium.org,mstarzinger@chromium.org,jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1192553002
      
      Cr-Commit-Position: refs/heads/master@{#29086}
      a4f06027
  11. 19 Mar, 2015 1 commit
  12. 09 Feb, 2015 1 commit
  13. 28 Jan, 2015 1 commit
  14. 23 Jan, 2015 1 commit
    • danno's avatar
      Remove the dependency of Zone on Isolate · c7b09aac
      danno authored
      Along the way:
      - Thread isolate parameter explicitly through code that used to
        rely on getting it from the zone.
      - Canonicalize the parameter position of isolate and zone for
        affected code
      - Change Hydrogen New<> instruction templates to automatically
        pass isolate
      
      R=mstarzinger@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/868883002
      
      Cr-Commit-Position: refs/heads/master@{#26252}
      c7b09aac
  15. 22 Dec, 2014 1 commit
  16. 11 Dec, 2014 1 commit
  17. 08 Dec, 2014 1 commit
  18. 03 Dec, 2014 3 commits
  19. 02 Dec, 2014 2 commits
  20. 19 Nov, 2014 1 commit
  21. 03 Nov, 2014 1 commit
  22. 27 Oct, 2014 1 commit
  23. 23 Oct, 2014 1 commit
  24. 15 Oct, 2014 4 commits
  25. 14 Oct, 2014 1 commit
  26. 13 Oct, 2014 2 commits
  27. 25 Sep, 2014 1 commit
  28. 30 Jul, 2014 1 commit