[PATCH] D24108: X86: Fold tail calls into conditional branches where possible (PR26302)

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 6 15:40:15 PDT 2016


hans updated this revision to Diff 70480.
hans marked 2 inline comments as done.
hans added a comment.

Addressing comments, doing optsize only and avoiding adding so many instructions.

I'm a little bit confused by the multiple levels of pseudo-instructions here actually. We have TCRETURNdi which is expanded in X86ExpandPseudo to a TCRETURNdi, but that is actually replaced by a JMP_1 when it comes to MC lowering. IIUC, this is because we want to put different flags and stuff on TCRETURNdi and JMP_1, but there can't be two real instructions with the same encoding, so the first one is marked isCodeGenOnly.

Anyway, I think this version of the patch is a little less messier than the first.


https://reviews.llvm.org/D24108

Files:
  include/llvm/Target/TargetInstrInfo.h
  lib/CodeGen/BranchFolding.cpp
  lib/Target/X86/X86ExpandPseudo.cpp
  lib/Target/X86/X86InstrControl.td
  lib/Target/X86/X86InstrInfo.cpp
  lib/Target/X86/X86InstrInfo.h
  lib/Target/X86/X86MCInstLower.cpp
  test/CodeGen/X86/conditional-tailcall.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24108.70480.patch
Type: text/x-patch
Size: 13762 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160906/9b41ee3d/attachment.bin>


More information about the llvm-commits mailing list