[PATCH] D13132: [X86] Emit .cfi_escape GNU_ARGS_SIZE when adjusting the stack before calls

Michael Kuperstein via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 24 06:10:30 PDT 2015


mkuper created this revision.
mkuper added reviewers: DavidKreitzer, rnk.
mkuper added a subscriber: llvm-commits.

This should hopefully fix the exception handling issues in PR24792.

There are two things I'd appreciate an opinion on:

a) Does it make sense to expose it like this to FrameLowering, or should the interface be more abstract, and actually turned into a .cfi_escape somewhere lower?

b) I'm not sure how to optimize away consequent directives that provide the same size. I don't think this can be done in eliminateCallFramePseudoInstr(), because (1) it's not guaranteed to be called in program order (even though in practice I think that is what happens when we have pushes), and (2) I think the basic-block order can change later on.
It may make sense to eliminate the redundant directives somewhere in the MC layer, but I'm not sure where that can fit in. Any suggestions?

http://reviews.llvm.org/D13132

Files:
  lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
  lib/MC/MCAsmStreamer.cpp
  lib/Target/X86/X86FrameLowering.cpp
  test/CodeGen/X86/push-cfi.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13132.35616.patch
Type: text/x-patch
Size: 8009 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150924/484bb17e/attachment.bin>


More information about the llvm-commits mailing list