[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