1. 14 Aug, 2018 1 commit
    • Junliang Yan's avatar
      PPC/s390: [turbofan] Further optimize DataView accesses. · 14170c67
      Junliang Yan authored
      Port 5fecd146
      
      Original Commit Message:
      
          This adds support for unaligned load/store access to the DataView
          backing store and uses byteswap operations to fix up the endianess
          when necessary. This changes the Word32ReverseBytes operator to be
          a required operator and adds the missing support on the Intel and
          ARM platforms (on 64-bit platforms the Word64ReverseBytes operator
          is also mandatory now).
      
          This further improves the performance on the dataviewperf.js test
          mentioned in the tracking bug by up to 40%, and at the same time
          reduces the code complexity in the EffectControlLinearizer.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: Ia9aad21713a2ad76ce3ef2b816fc20e9a27fe4c9
      Reviewed-on: https://chromium-review.googlesource.com/1174936Reviewed-by: 's avatarJohn Barboza <jbarboza@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#55132}
      14170c67
  2. 06 Dec, 2016 1 commit
  3. 18 Jul, 2016 1 commit
  4. 14 Jun, 2016 1 commit
  5. 13 Jun, 2016 1 commit
    • bjaideep's avatar
      PPC: [builtins] Introduce proper Float64Log1p, Float64Atan and Float64Atan2 operators. · 6203906c
      bjaideep authored
      Port 7ceed92a
      Port 89d8c57b
      
      Original commit message:
      
          Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
          introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
          similar to what we already did for Float64Log and Float64Log1p. Rewrite
          Math.atan() and Math.atan2() as TurboFan builtin and use the operators
          to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.
      
          Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p
          TurboFan operator based on that, similar to what we do for Float64Log.
          Rewrite Math.log1p() as TurboFan builtin and use that operator to also
          inline Math.log1p() into optimized TurboFan functions.
      
          Also unify the handling of the special IEEE 754 functions somewhat in
          the TurboFan backends. At some point we can hopefully express this
          completely in the InstructionSelector (once we have an idea what to do
          with the ST(0) return issue on IA-32/X87).
      
          Drive-by-fix: Add some more test coverage for the log function.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:5086,v8:5092,v8:5095
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2061753002
      Cr-Commit-Position: refs/heads/master@{#36935}
      6203906c
  6. 03 Jun, 2016 1 commit
    • bjaideep's avatar
      PPC: [builtins] Migrate Math.log to TurboFan. · 0ed27704
      bjaideep authored
      Port f2da19fe
      
      Original commit message:
      
          Introduce a dedicated Float64Log machine operator, that is either
          implemented by a direct C call or by platform specific code, i.e.
          using the FPU on x64 and ia32.
      
          This operator is used to implement Math.log as a proper TurboFan
          builtin on top of the CodeStubAssembler.
      
          Also introduce a NumberLog simplified operator on top of Float64Log
          and use that for the fast inline path of Math.log inside TurboFan
          optimized code.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:5065
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2036273002
      Cr-Commit-Position: refs/heads/master@{#36720}
      0ed27704
  7. 22 Apr, 2016 1 commit
  8. 30 Mar, 2016 1 commit
    • mbrandy's avatar
      PPC: [wasm] Int64Lowering of Int64Mul. · 20ff44f0
      mbrandy authored
      Port 40bdbef9
      
      Original commit message:
          Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
          operator takes 4 inputs an generates 2 outputs. The inputs are the low
          word of the left input, high word of the left input, the low word of the
          right input, and high word of the right input. The ouputs are the low
          and high word of the result of the multiplication.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1847563003
      
      Cr-Commit-Position: refs/heads/master@{#35143}
      20ff44f0
  9. 16 Mar, 2016 1 commit
    • mbrandy's avatar
      PPC: [wasm] Int64Lowering of Int64Sub. · eb0a2324
      mbrandy authored
      Port 33c08596
      
      Original commit message:
          Int64Sub is lowered to a new turbofan operator, Int32SubPair. The new
          operator takes 4 inputs an generates 2 outputs. The inputs are the low
          word of the left input, high word of the left input, the low word of the
          right input, and high word of the right input. The ouputs are the low
          and high word of the result of the subtraction.
      
          The implementation is very similar to the implementation of Int64Add.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1812473002
      
      Cr-Commit-Position: refs/heads/master@{#34821}
      eb0a2324
  10. 15 Mar, 2016 1 commit
    • mbrandy's avatar
      PPC: [wasm] Int64Lowering of Int64Add. · 0548cf49
      mbrandy authored
      Port 1b230799
      
      Original commit message:
          Int64Add is lowered to a new turbofan operator, Int32AddPair. The new
          operator takes 4 inputs an generates 2 outputs. The inputs are the low
          word of the left input, high word of the left input, the low word of the
          right input, and high word of the right input. The ouputs are the low
          and high word of the result of the addition.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1803113002
      
      Cr-Commit-Position: refs/heads/master@{#34797}
      0548cf49
  11. 10 Mar, 2016 1 commit
  12. 08 Mar, 2016 1 commit
    • mbrandy's avatar
      PPC: [wasm] Int64Lowering of I64Shl. · e36eba88
      mbrandy authored
      Port ddc626e1
      
      Original commit message:
          I64Shl is lowered to a new turbofan operator, WasmWord64Shl. The new
          operator takes 3 inputs, the low-word input, the high-word input, and
          the shift, and produces 2 output, the low-word output and the high-word
          output.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1765383004
      
      Cr-Commit-Position: refs/heads/master@{#34588}
      e36eba88
  13. 08 Feb, 2016 1 commit
  14. 16 Jan, 2016 1 commit
    • ahaas's avatar
      [turbofan] Add the RoundInt32ToFloat32 operator to turbofan. · e06f7d78
      ahaas authored
      The new operator converts an int32 input to float32. If the input cannot
      be represented exactly in float32, the value is rounded using the
      round-ties-even rounding mode (the default rounding mode).
      
      I provide implementations of the new operator for x64, ia32, arm, arm64,
      mips, mips64, ppc, and ppc64.
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com, v8-ppc-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1589363002
      
      Cr-Commit-Position: refs/heads/master@{#33347}
      e06f7d78
  15. 23 Nov, 2015 1 commit
  16. 19 Nov, 2015 1 commit
  17. 17 Nov, 2015 1 commit
  18. 11 Nov, 2015 2 commits
  19. 10 Nov, 2015 2 commits
  20. 09 Nov, 2015 1 commit
  21. 04 Nov, 2015 1 commit
  22. 16 Oct, 2015 1 commit
  23. 22 Sep, 2015 1 commit
  24. 21 Sep, 2015 1 commit
  25. 25 Jun, 2015 1 commit
  26. 09 Apr, 2015 1 commit
  27. 31 Mar, 2015 1 commit
    • michael_dawson's avatar
      PPC: [turbofan] Add backend support for float32 operations. · 2dd659f8
      michael_dawson authored
      Port 8dad78cd
      
      Original commit message:
      This adds the basics necessary to support float32 operations in TurboFan.
      The actual functionality required to detect safe float32 operations will
      be added based on this later. Therefore this does not affect production
      code except for some cleanup/refactoring.
      
      In detail, this patchset contains the following features:
      - Add support for float32 operations to arm, arm64, ia32 and x64
        backends.
      - Add float32 machine operators.
      - Add support for float32 constants to simplified lowering.
      - Handle float32 representation for phis in simplified lowering.
      
      In addition, contains the following (related) cleanups:
      - Fix/unify naming of backend instructions.
      - Use AVX comparisons when available.
      - Extend ArchOpcodeField to 9 bits (required for arm64).
      - Refactor some code duplication in instruction selectors.
      
      BUG=v8:3589
      LOG=N
      
      R=mbrandy@us.ibm.com
      
      Review URL: https://codereview.chromium.org/1049253004
      
      Cr-Commit-Position: refs/heads/master@{#27547}
      2dd659f8
  28. 24 Mar, 2015 1 commit
  29. 16 Mar, 2015 1 commit
  30. 11 Mar, 2015 1 commit
    • michael_dawson's avatar
      Contribution of PowerPC port (continuation of 422063005) - uplevel · 45e4a789
      michael_dawson authored
      Contribution of PowerPC port (continuation of 422063005,
      817143002,866843003, and 901083004). This patch updates
      the ppc directories to make them current with changes in
      common code as of today.
      
      We had to exclude the test test-serialize/SerializeInternalReference
      until we agree on the right way to add those changes for PPC as
      outlined in the description in the google doc provided earlier.
      
      We also had to exclude a couple of other tests due to new
      failures seen since the last uplevel.  We excluded as opposed
      to waiting until we could investigate to maximize the chance
      of getting PPC compiling in the google repos before new
      breaking changes are made.
      
      I'll note that before applying any of our changes the
      mozilla part of quickcheck was already broken when using
      the lastest repo content so I had to run without that
      
      	modified:   src/compiler/ppc/code-generator-ppc.cc
      	modified:   src/compiler/ppc/instruction-codes-ppc.h
      	modified:   src/compiler/ppc/instruction-selector-ppc.cc
      	modified:   src/ic/ppc/handler-compiler-ppc.cc
      	modified:   src/ic/ppc/ic-compiler-ppc.cc
      	modified:   src/ppc/assembler-ppc-inl.h
      	modified:   src/ppc/assembler-ppc.cc
      	modified:   src/ppc/assembler-ppc.h
      	modified:   src/ppc/builtins-ppc.cc
      	modified:   src/ppc/code-stubs-ppc.cc
      	modified:   src/ppc/codegen-ppc.cc
      	modified:   src/ppc/full-codegen-ppc.cc
      	modified:   src/ppc/lithium-codegen-ppc.cc
      	modified:   src/ppc/macro-assembler-ppc.cc
      	modified:   src/ppc/macro-assembler-ppc.h
      	modified:   test/cctest/cctest.status
      
      R=danno@chromium.org, svenpanne@chromium.org
      
      BUG=
      
      Review URL: https://codereview.chromium.org/994533004
      
      Cr-Commit-Position: refs/heads/master@{#27125}
      45e4a789
  31. 05 Feb, 2015 1 commit
    • michael_dawson's avatar
      Contribution of PowerPC port (continuation of 422063005) - PPC dir update · 308d913a
      michael_dawson authored
      Contribution of PowerPC port (continuation of 422063005, 817143002 and 866843003)
      This patch brings the ppc directories up to date with our repo. We have
      removed 5 individual optimizations which require changes in both the ppc and common
      directories so they can be more easily reviewed on their own in subsequent patches.
      
      Subsequent patches will cover:
      - individual optimizations for PPC (5)
      - remaining AIX changes not resolved by 4.8 compiler (4.8 is only recently available
      for AIX)
      - incremental updates required to ppc directories due to platform specific changes
      made in google repos while we complete the above steps.
      
      With the update there are still some timeouts seen when run in simulated mode which
      may be a result of the missing optimizations.  Once we have the optimizations in
      we will review the simulation results and address/exclude tests as necessary so that
      the simulated runs are clean.
      
      	new file:   src/compiler/ppc/code-generator-ppc.cc
      	new file:   src/compiler/ppc/instruction-codes-ppc.h
      	new file:   src/compiler/ppc/instruction-selector-ppc.cc
      	new file:   src/compiler/ppc/linkage-ppc.cc
      	modified:   src/ic/ppc/handler-compiler-ppc.cc
      	modified:   src/ic/ppc/ic-compiler-ppc.cc
      	modified:   src/ic/ppc/ic-ppc.cc
      	modified:   src/ic/ppc/stub-cache-ppc.cc
      	modified:   src/ppc/assembler-ppc.cc
      	modified:   src/ppc/assembler-ppc.h
      	modified:   src/ppc/builtins-ppc.cc
      	modified:   src/ppc/code-stubs-ppc.cc
      	modified:   src/ppc/code-stubs-ppc.h
      	modified:   src/ppc/codegen-ppc.cc
      	modified:   src/ppc/constants-ppc.h
      	modified:   src/ppc/deoptimizer-ppc.cc
      	modified:   src/ppc/disasm-ppc.cc
      	modified:   src/ppc/full-codegen-ppc.cc
      	modified:   src/ppc/interface-descriptors-ppc.cc
      	modified:   src/ppc/lithium-codegen-ppc.cc
      	modified:   src/ppc/lithium-codegen-ppc.h
      	modified:   src/ppc/lithium-ppc.cc
      	modified:   src/ppc/lithium-ppc.h
      	modified:   src/ppc/macro-assembler-ppc.cc
      	modified:   src/ppc/macro-assembler-ppc.h
      	modified:   src/ppc/regexp-macro-assembler-ppc.cc
      	modified:   src/ppc/regexp-macro-assembler-ppc.h
      	modified:   src/ppc/simulator-ppc.cc
      	modified:   src/ppc/simulator-ppc.h
      	new file:   test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc
      
      R=danno@chromium.org, svenpanne@chromium.org
      
      BUG=
      
      Review URL: https://codereview.chromium.org/901083004
      
      Cr-Commit-Position: refs/heads/master@{#26471}
      308d913a