1. 09 Oct, 2019 1 commit
  2. 26 Sep, 2019 2 commits
  3. 25 Sep, 2019 1 commit
  4. 16 Sep, 2019 1 commit
  5. 13 Sep, 2019 1 commit
  6. 12 Sep, 2019 1 commit
  7. 10 Sep, 2019 2 commits
  8. 09 Sep, 2019 1 commit
    • Tom Tan's avatar
      Avoid defining class name `Label` as type alias in cctest because it is used by V8 · 8d107684
      Tom Tan authored
      It is not recommended to define type alias in C++ header file. cctest defines
      type alias `using Label=CodeAssemblerLabel` in anonymous namespace under
      namespace `v8::internal::compiler` in test-code-assembler.cc. This is fine
      because this type alias is expected to take effect only in this .cc file. But in
      jumbo build, multiple source files are combined as a single one, and the
      previous `Label` type alias could shadow definition of `Label` from other header
      file (for example, v8/src/codegen/label.h which is included by another .cc file)
      This is totally unexpected and triggers bad class layout and accessing in the
      latter .cc file for the places where `Label` is referenced.
      
      This change fixes cctest from Windows ARM64 jumbo build, but it applies to
      other architectures too.
      
      Bug: chromium:893460
      Change-Id: Ib2e9df76f6e3371b3940649668c5d13e6b36f028
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1788537Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Tom Tan <Tom.Tan@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#63605}
      8d107684
  9. 29 Aug, 2019 1 commit
  10. 28 Aug, 2019 1 commit
  11. 26 Aug, 2019 1 commit
  12. 23 Aug, 2019 2 commits
  13. 22 Aug, 2019 1 commit
  14. 01 Aug, 2019 2 commits
  15. 30 Jul, 2019 1 commit
  16. 26 Jul, 2019 1 commit
  17. 17 Jul, 2019 1 commit
  18. 12 Jul, 2019 1 commit
    • Nico Hartmann's avatar
      [turbofan] Push BigInt truncation over addition and heap constants · 99df710d
      Nico Hartmann authored
      This change implements lowering of speculative BigInt addition as well as
      BigInt heap constants to corresponding int64 versions, if they are used in
      a context where the result is truncated to the least significant 64 bits
      (e.g. using asUintN). The JSHeapBroker is extended to provide access to the
      BigInt's least significant digit during concurrent compilation. The BigInt
      context (required to introduce correct conversions) is recognized in the
      RepresentationChanger by either the output type propagated downward or the
      TypeCheckKind propagated upward. This is necessary, because the TypeCheckKind
      may only be set by nodes that may potentially deopt (and sit in the effect
      chain). This is the case for SpeculativeBigIntAdd, but not for BigIntAsUintN.
      
      This CL contains a simple fix to prevent int64-lowered BigInts to flow into
      state values as the deoptimizer cannot handle them yet. A more sophisticated
      solution to allow the deoptimizer to materialize truncated BigInts will be
      added in a following CL.
      
      Bug: v8:9407
      Change-Id: I96a293e9077962f53e5f199857644f004e3ae56e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684183
      Commit-Queue: Nico Hartmann <nicohartmann@google.com>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62665}
      99df710d
  19. 11 Jul, 2019 1 commit
  20. 08 Jul, 2019 1 commit
  21. 05 Jul, 2019 1 commit
  22. 03 Jul, 2019 1 commit
  23. 27 Jun, 2019 1 commit
  24. 26 Jun, 2019 1 commit
    • Mike Stanton's avatar
      [TurboFan] Serializing context information · 386ff6e5
      Mike Stanton authored
      In TurboFan, context specialization is an optimization that tries to
      either replace the load of a value from the context with a constant,
      or if that can't be achieved, at least reduce the hops up the
      context chain by starting a walk to the required depth from the
      first constant context that it can reach.
      
      Currently, this optimization is performed by looking into the
      heap during a reducer pass. With fully concurrent TurboFan, we
      need to instead gather information about contexts we may want
      to perform this optimization on during serialization.
      
      This CL adds functionality to the serializer to recognize and
      model operations that affect the context register. We add to the
      hinting structure already used by the serializer. There is
      a new type of hint: a VirtualContext. This is a tuple consisting
      of a handle to a Context, and a distance field that indicates how
      far away in a to-be-realized chain this VirtualContext sits from
      the context in the handle. For example:
      
      bytecode stream:
      ...
      CreateBlockContext
      ...
      
      After a block context is created, the accumulator now contains
      a VirtualContext Hint with a distance of 1 from any context hints
      that we are keeping track of in the current context register.
      
      More details in the design doc here:
      https://docs.google.com/document/d/1Y0LKKCEenLWyAZTetoAIpKTZRCxaNdkYV8X1GaCax2A/edit?usp=sharing
      
      Change-Id: I63732ebd106cc138fb1e9789d0676ece63e15d27
      Bug: v8:7790
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605941
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62370}
      386ff6e5
  25. 18 Jun, 2019 1 commit
  26. 12 Jun, 2019 1 commit
  27. 31 May, 2019 1 commit
  28. 29 May, 2019 1 commit
  29. 27 May, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Replace simple typedefs by using · a335f2ae
      Clemens Hammacher authored
      This replaces all typedefs that define types and not functions by the
      equivalent "using" declaration.
      
      This was done mostly automatically using this command:
      ag -l '\btypedef\b' src test | xargs -L1 \
           perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg'
      
      Patchset 2 then adds some manual changes for typedefs for pointer types,
      where the regular expression did not match.
      
      R=mstarzinger@chromium.org
      TBR=yangguo@chromium.org, jarin@chromium.org
      
      Bug: v8:9183
      Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61849}
      a335f2ae
  30. 24 May, 2019 1 commit
  31. 23 May, 2019 4 commits
  32. 22 May, 2019 1 commit
  33. 21 May, 2019 1 commit
    • Clemens Hammacher's avatar
      Remove FixedArray::GetValueChecked · daa26679
      Clemens Hammacher authored
      This method is rarely used, and has several problems:
      1) It CHECKs that the value is not undefined, then creates a
         {Handle<T>} which again DCHECKs that the value is of type {T}.
      2) It is called on a raw {FixedArray} but returns a handle.
      3) It is often used when no handle is actually needed, adding
         unnecessary overhead.
      4) It adds complexity and hides actual checks and handlification.
      
      This CL removes that method, replacing some uses by explicit CHECKs (in
      tests) and relying on the DCHECKs in the casts otherwise.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:9183
      Change-Id: I90ff59e8b78c909a9a207029d8cc9ab16c0c7b56
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621939
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61710}
      daa26679