[PATCH] D31287: [mips] Fix atomic compare and swap at O0, v2

Simon Dardis via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 14 03:28:04 PDT 2017


sdardis updated this revision to Diff 102517.
sdardis added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: arichardson.

Updated the liveness tracking for new basic blocks produced by MipsExpandPseudo.
Reduced the number of basic blocks created by MipsISelLowering for atomic operations - this helps optimize the code operated on by FastRegAlloc, i.e. less spurious spills and reloads.
Updated the lowering of atomic operations not to produce spurious copies, the better liveness tracking handles values being live.
Updated the register flags used for atomic pseudos, my initial implementation marked the inputs as early clobber when it was the output that needed to be marked early clobber.


https://reviews.llvm.org/D31287

Files:
  lib/Target/Mips/CMakeLists.txt
  lib/Target/Mips/Mips.h
  lib/Target/Mips/Mips64InstrInfo.td
  lib/Target/Mips/MipsExpandPseudo.cpp
  lib/Target/Mips/MipsISelLowering.cpp
  lib/Target/Mips/MipsISelLowering.h
  lib/Target/Mips/MipsInstrInfo.td
  lib/Target/Mips/MipsTargetMachine.cpp
  test/CodeGen/Mips/atomic.ll
  test/CodeGen/Mips/atomicCmpSwapPW.ll
  test/CodeGen/Mips/micromips-atomic.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31287.102517.patch
Type: text/x-patch
Size: 81528 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170614/8e87a02e/attachment.bin>


More information about the llvm-commits mailing list