[PATCH] [PowerPC] Fix __tls_get_addr sequence to avoid register assignment issues

Bill Schmidt wschmidt at linux.vnet.ibm.com
Mon Feb 9 13:21:34 PST 2015


Once more, with feeling...

Changes from the previous patch:

- Call clobbers are handled by annotating both the GETtlsADDR* and ADDItls*LADDR* instructions with implied defs.  This still permits MachineCSE to do its work while preventing the behavior that was breaking the POWER7 bootstrap.
- PPCTLSDynamicCall.cpp now properly repairs live intervals.
- The new PPCTLSDynamicCall pass is now only called if the relocation model is PIC_.

Once again, I've tested various bootstrap scenarios, but would appreciate a sniff test on your POWER7 build. Thanks!


http://reviews.llvm.org/D7491

Files:
  lib/Target/PowerPC/CMakeLists.txt
  lib/Target/PowerPC/PPC.h
  lib/Target/PowerPC/PPCAsmPrinter.cpp
  lib/Target/PowerPC/PPCFrameLowering.cpp
  lib/Target/PowerPC/PPCISelLowering.cpp
  lib/Target/PowerPC/PPCISelLowering.h
  lib/Target/PowerPC/PPCInstr64Bit.td
  lib/Target/PowerPC/PPCInstrInfo.td
  lib/Target/PowerPC/PPCMCInstLower.cpp
  lib/Target/PowerPC/PPCTLSDynamicCall.cpp
  lib/Target/PowerPC/PPCTargetMachine.cpp
  test/CodeGen/PowerPC/retaddr2.ll
  test/CodeGen/PowerPC/tls-cse.ll
  test/CodeGen/PowerPC/tls-store2.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7491.19606.patch
Type: text/x-patch
Size: 39079 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150209/e9ce0316/attachment.bin>


More information about the llvm-commits mailing list