[all-commits] [llvm/llvm-project] 2a10f8: [X86] Use FIST for i64 atomic stores on 32-bit tar...

topperc via All-commits all-commits at lists.llvm.org
Sun Feb 23 15:14:20 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2a10f8019dd9525c91d1f2f74538c83edfc16bee
      https://github.com/llvm/llvm-project/commit/2a10f8019dd9525c91d1f2f74538c83edfc16bee
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/atomic-fp.ll
    M llvm/test/CodeGen/X86/atomic-load-store-wide.ll
    M llvm/test/CodeGen/X86/atomic-mi.ll
    M llvm/test/CodeGen/X86/atomic-non-integer.ll

  Log Message:
  -----------
  [X86] Use FIST for i64 atomic stores on 32-bit targets without SSE.


  Commit: 15b6aa744881b6e77a3d6773afa3016fc2f9f123
      https://github.com/llvm/llvm-project/commit/15b6aa744881b6e77a3d6773afa3016fc2f9f123
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/atomic-fp.ll
    M llvm/test/CodeGen/X86/atomic-non-integer.ll

  Log Message:
  -----------
  [X86] Enable the use of movlps for i64 atomic load on 32-bit targets with sse1.

Still a little room for improvement by using movlps to store to
the stack temporary needed to move data out of the xmm register
after the load.


  Commit: 5a705186604fbd1bc762f5fe7370983cc0827ffd
      https://github.com/llvm/llvm-project/commit/5a705186604fbd1bc762f5fe7370983cc0827ffd
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h
    M llvm/lib/Target/X86/X86InstrFragmentsSIMD.td

  Log Message:
  -----------
  [X86] Remove most X86 specific subclasses of MemSDNode. Just use a MemIntrinsicSDNode as we usually do.

Leave the gather/scatter subclasses, but make them inherit from
MemIntrinsicSDNode and delete their constructor and destructor.
This way we can still have the getIndex, getMask, etc. convenience
functions.


  Commit: 384d5e33fe2ea0b40119b003b60cfa8b21e3fd15
      https://github.com/llvm/llvm-project/commit/384d5e33fe2ea0b40119b003b60cfa8b21e3fd15
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/SelectionDAG.h

  Log Message:
  -----------
  [SelectionDAG] Remove SelectionDAG::getTargetMemSDNode now that its not used.

Targets are expected to use getMemIntrinsicNode and not provide
their own subclasses. X86 was previously the only user.


Compare: https://github.com/llvm/llvm-project/compare/82879c2913da...384d5e33fe2e


More information about the All-commits mailing list