[PATCH] D18046: [X86] Providing correct unwind info in function epilogue

Violeta Vukobrat via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 17 10:42:19 PDT 2016


violetav updated this revision to Diff 50955.
violetav added a comment.

Thank you for the review, Michael!

One of the reasons against inserting CFI instructions in epilogue during frame lowering, that I have come across, is the fact that their existence in the epilogue block interferes with the work of the tail duplication pass; it doesn't duplicate blocks which it would otherwise and therefore produces different code.

Generating all cfa adjustment post-layout sounds like a good idea. However, if support for generating different .eh_frame and .debug_frame is added, I am not sure if moving all CFA adjustments to a late pass would somehow affect the decision on which CFI directive should end up in .eh_frame and which shouldn't. Maybe generating CFI directives for .eh_frame could be left as it is right now (done in frame lowering), and generating all CFI for .debug_frame could be done in a late pass.

I addressed your comments in the patch.


Repository:
  rL LLVM

http://reviews.llvm.org/D18046

Files:
  lib/Target/X86/CMakeLists.txt
  lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
  lib/Target/X86/X86.h
  lib/Target/X86/X86CFIInstrInserter.cpp
  lib/Target/X86/X86FrameLowering.cpp
  lib/Target/X86/X86TargetMachine.cpp
  test/CodeGen/X86/epilogue-cfi-fp.ll
  test/CodeGen/X86/epilogue-cfi-no-fp.ll
  test/CodeGen/X86/throws-cfi-fp.ll
  test/CodeGen/X86/throws-cfi-no-fp.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18046.50955.patch
Type: text/x-patch
Size: 37331 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160317/d366bb4a/attachment.bin>


More information about the llvm-commits mailing list