1. 15 Nov, 2019 1 commit
  2. 14 Nov, 2019 1 commit
  3. 22 Oct, 2019 1 commit
    • Ng Zhi An's avatar
      Reland "Clean up macros" · 0c7b551f
      Ng Zhi An authored
      This is a reland of 08b26f53
      
      Fixed the original crash, by removing a disasm for psllq and psrlq
      that is now handled by the macro list.
      
      Original change's description:
      > Clean up macros
      >
      > Move some instruction definitions into sse-instr, which is used to
      > generate some disasm tests, so we can remove some cases there.
      >
      > Bug: v8:9810
      > Change-Id: I0615ec823396da08bc5d234cf1dabca6afd3f052
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866965
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#64441}
      
      Bug: v8:9810
      Change-Id: I69335a889f5f72b76a79e4e9860835232e6e38a8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872298Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64487}
      0c7b551f
  4. 21 Oct, 2019 2 commits
  5. 15 Oct, 2019 2 commits
    • Dan Elphick's avatar
      [cleanup] Fix missing overrides on virtual functions · fe7f74e8
      Dan Elphick authored
      Add overrides to port specific assemblers and delete redundant empty
      override.
      
      Bug: v8:9810
      Change-Id: I17e4614e06783867ae50e87bba83d35ebc9d0b51
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862567
      Auto-Submit: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64297}
      fe7f74e8
    • Clemens Backes's avatar
      [Liftoff] Improve initialization for many locals · a8cdda99
      Clemens Backes authored
      WebAssembly locals are specified to be zero on function entry. Liftoff
      implements this by just storing the constant 0 in the virtual stack for
      integer types, and using one floating point register initialized to
      zero for all floating point types.
      For big counts of locals this leads to problems (manifesting as huge
      blocks of code being generated) once we hit a merge point: All those
      constants (for int) and all duplicate register uses (for floats) need to
      be fixed up, by using separate registers for the locals or spilling to
      the stack if no more registers are available. All this spilling
      generates a lot of code, and can even happen multiple times within a
      function.
      
      This CL optimizes for such cases by spilling all locals to the stack
      initially. All merges within the function body get much smaller then.
      The spilled values rarely have to be loaded anyway, because the initial
      zero value is usually overwritten before the first use.
      
      To optimize the code size for initializing big numbers of locals on the
      stack, this CL also introduces the platform-specific
      {FillStackSlotsWithZero} method which uses a loop for bigger local
      counts.
      
      This often saves dozens of kilobytes for very big functions, and shows
      an overall code size reduction of 4-5 percent for big modules.
      
      R=jkummerow@chromium.org
      
      Bug: v8:9830
      Change-Id: I23fa4145847827420f09e043a11e0e7b606e94cc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1856004
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64282}
      a8cdda99
  6. 10 Oct, 2019 1 commit
  7. 09 Oct, 2019 1 commit
  8. 04 Oct, 2019 1 commit
  9. 02 Oct, 2019 1 commit
  10. 01 Oct, 2019 1 commit
  11. 26 Sep, 2019 1 commit
  12. 24 Sep, 2019 1 commit
  13. 16 Sep, 2019 1 commit
  14. 13 Sep, 2019 1 commit
  15. 29 Jul, 2019 3 commits
    • Clemens Hammacher's avatar
      Reland "[utils] Make BitField final" · 0cabc6a0
      Clemens Hammacher authored
      This is a reland of 658ff200
      
      Original change's description:
      > [utils] Make BitField final
      > 
      > We have hundreds of classes that derive from {BitField} without adding
      > any functionality. This CL switches all such occurrences to 'using'
      > declarations instead.
      > 
      > Before:
      >   class MyBitField : public BitField<int, 6, 4, MyEnum> {};
      > After:
      >   using MyBitField = BitField<int, 6, 4, MyEnum>;
      > 
      > This might reduce compilation time by reducing the number of existing
      > classes.
      > 
      > The old pattern is forbidden now by making {BitField} final.
      > 
      > R=yangguo@chromium.org
      > 
      > Bug: v8:9396, v8:7629
      > Change-Id: I8a8364707e8eae0bb522af2459c160e3293eecbb
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722565
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62956}
      
      Bug: v8:9396, v8:7629
      Change-Id: Ic68541af9d1e8d0340691970922f282b24a9767f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1724379Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62959}
      0cabc6a0
    • Clemens Hammacher's avatar
      Revert "[utils] Make BitField final" · 753a07db
      Clemens Hammacher authored
      This reverts commit 658ff200.
      
      Reason for revert: Fails no-i18n bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20noi18n%20-%20debug/27826
      
      Original change's description:
      > [utils] Make BitField final
      > 
      > We have hundreds of classes that derive from {BitField} without adding
      > any functionality. This CL switches all such occurrences to 'using'
      > declarations instead.
      > 
      > Before:
      >   class MyBitField : public BitField<int, 6, 4, MyEnum> {};
      > After:
      >   using MyBitField = BitField<int, 6, 4, MyEnum>;
      > 
      > This might reduce compilation time by reducing the number of existing
      > classes.
      > 
      > The old pattern is forbidden now by making {BitField} final.
      > 
      > R=​yangguo@chromium.org
      > 
      > Bug: v8:9396, v8:7629
      > Change-Id: I8a8364707e8eae0bb522af2459c160e3293eecbb
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722565
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62956}
      
      TBR=yangguo@chromium.org,clemensh@chromium.org
      
      Change-Id: I50234a09c77aa89fdcf1e01c2497cc08d3ac79a8
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9396, v8:7629
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1724377Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62958}
      753a07db
    • Clemens Hammacher's avatar
      [utils] Make BitField final · 658ff200
      Clemens Hammacher authored
      We have hundreds of classes that derive from {BitField} without adding
      any functionality. This CL switches all such occurrences to 'using'
      declarations instead.
      
      Before:
        class MyBitField : public BitField<int, 6, 4, MyEnum> {};
      After:
        using MyBitField = BitField<int, 6, 4, MyEnum>;
      
      This might reduce compilation time by reducing the number of existing
      classes.
      
      The old pattern is forbidden now by making {BitField} final.
      
      R=yangguo@chromium.org
      
      Bug: v8:9396, v8:7629
      Change-Id: I8a8364707e8eae0bb522af2459c160e3293eecbb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722565Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62956}
      658ff200
  16. 19 Jul, 2019 1 commit
  17. 28 May, 2019 1 commit
  18. 23 May, 2019 1 commit
  19. 22 May, 2019 1 commit
  20. 21 May, 2019 1 commit
  21. 08 May, 2019 1 commit
    • Pierre Langlois's avatar
      [ic] Do not decode instructions to detect deoptimized code. · 0d8ec36b
      Pierre Langlois authored
      This fixes a crash when using --trace-ic on Arm64 debug. For a given return
      address, the assembler's `target_address_from_return_address()` method will
      displace it to give you the call-site address. However, this is fragile because
      it needs to decode the instruction stream to distinguish between different call
      sequences. So it triggered an assertion on Arm64 because we now use BL for
      builtin to buitin calls.
      
      We only use this when tracing IC states to detect if the caller is a deoptimized
      function. But to do this it doesn't matter if the address we have is the return
      or the call-site address. So we can just remove the need for the fragile
      Assembler method.
      
      As a drive-by, also remove `return_address_from_call_start()` which was doing
      the opposite and was unused.
      
      Change-Id: I5988d17eadd1652ed85d662e62bc4c579665dd31
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594566
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61337}
      0d8ec36b
  22. 02 May, 2019 1 commit
  23. 30 Apr, 2019 1 commit
    • Mike Stanton's avatar
      Reland "[ptr-compr] New RelocInfo for compressed pointers." · ed319e84
      Mike Stanton authored
      Failure addressed by not exposing the new test to the jitless environment.
      (jgruber@ on TBR).
      
      New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support
      compressed pointers in generated code. Enum name EMBEDDED_OBJECT
      changed to FULL_EMBEDDED_OBJECT.
      
      RelocInfo::[set_]target_object() abstract away the difference between
      FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT.
      
      Compressed embedded objects can only be created at this time on
      x64 with pointer compression turned on. Arm64 constant pools don't
      support compressed objects at this time.
      
      NOPRESUBMIT=true
      
      Bug: v8:7703
      TBR: jgruber@chromium.org
      Change-Id: Ifff53b041bab09b4b8c3e16085e5df4aa2b99f4f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588461Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61104}
      ed319e84
  24. 29 Apr, 2019 2 commits
  25. 22 Mar, 2019 1 commit
  26. 08 Mar, 2019 1 commit
    • Bill Budge's avatar
      Reland "[wasm simd] Fix F32x4 Min and Max" · bd15e189
      Bill Budge authored
      This is a reland of 821bc649
      
      Original change's description:
      > [wasm simd] Fix F32x4 Min and Max
      > 
      > - Fix F32x4 tests to save results in globals, so they can be checked
      >   in C++ code. Perform correct checks in case of NaNs.
      > - Fix ia32, x64 implementations of F32x4Min, F32x4Max to correctly
      >   deal with NaNs.
      > - Enable tests for all float values on all platforms, except skip
      >   denormalized results on ARM, and skip extreme values for reciprocal,
      >   reciprocal square root approximation opcodes.
      > - Disable Min, Max test for interpreter (see v8:8425) since it doesn't
      >   handle NaNs correctly.
      > - Fix vmin, vmax implementations in ARM simulator.
      > 
      > Bug: v8:8639
      > Change-Id: I87e188e3cb078f09fdacfd9955f426c20a11bf64
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1495897
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60021}
      
      Bug: v8:8639
      Change-Id: Ic557aa1d323693eabf5885ff5eddc15e3174079b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1501279Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60109}
      bd15e189
  27. 05 Mar, 2019 1 commit
    • Deepti Gandluri's avatar
      Revert "[wasm simd] Fix F32x4 Min and Max" · b7132523
      Deepti Gandluri authored
      This reverts commit 821bc649.
      
      Reason for revert: Fails on ARM hardware :(
      https://ci.chromium.org/p/v8/builders/ci/V8%20Arm%20-%20debug/9271
      
      Original change's description:
      > [wasm simd] Fix F32x4 Min and Max
      > 
      > - Fix F32x4 tests to save results in globals, so they can be checked
      >   in C++ code. Perform correct checks in case of NaNs.
      > - Fix ia32, x64 implementations of F32x4Min, F32x4Max to correctly
      >   deal with NaNs.
      > - Enable tests for all float values on all platforms, except skip
      >   denormalized results on ARM, and skip extreme values for reciprocal,
      >   reciprocal square root approximation opcodes.
      > - Disable Min, Max test for interpreter (see v8:8425) since it doesn't
      >   handle NaNs correctly.
      > - Fix vmin, vmax implementations in ARM simulator.
      > 
      > Bug: v8:8639
      > Change-Id: I87e188e3cb078f09fdacfd9955f426c20a11bf64
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1495897
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60021}
      
      TBR=bbudge@chromium.org,gdeepti@chromium.org
      
      Change-Id: Ib0dc8395ff86263fe0c02faa53d90c7da46b50a6
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8639
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1501732Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60022}
      b7132523
  28. 04 Mar, 2019 1 commit
    • Bill Budge's avatar
      [wasm simd] Fix F32x4 Min and Max · 821bc649
      Bill Budge authored
      - Fix F32x4 tests to save results in globals, so they can be checked
        in C++ code. Perform correct checks in case of NaNs.
      - Fix ia32, x64 implementations of F32x4Min, F32x4Max to correctly
        deal with NaNs.
      - Enable tests for all float values on all platforms, except skip
        denormalized results on ARM, and skip extreme values for reciprocal,
        reciprocal square root approximation opcodes.
      - Disable Min, Max test for interpreter (see v8:8425) since it doesn't
        handle NaNs correctly.
      - Fix vmin, vmax implementations in ARM simulator.
      
      Bug: v8:8639
      Change-Id: I87e188e3cb078f09fdacfd9955f426c20a11bf64
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1495897
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60021}
      821bc649
  29. 15 Feb, 2019 1 commit
  30. 13 Feb, 2019 1 commit
  31. 01 Feb, 2019 1 commit
  32. 30 Jan, 2019 1 commit
  33. 25 Jan, 2019 1 commit
  34. 22 Jan, 2019 1 commit
  35. 17 Jan, 2019 1 commit