[PATCH] D17555: [Feedback requested] Implement cold spliting

Amaury SECHET via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 16:37:21 PST 2016


deadalnix created this revision.
deadalnix added reviewers: MatzeB, majnemer, joker.eph, danielcdh, davidxl.
deadalnix added a subscriber: llvm-commits.

This is an attempt at splitting cold code from regular code in a function. All landing pads are considered cold (in fact, they almost always are, especially if performance is a concern, and assuming this allow for simplification in the LSDA).

2 LSDA header and call sites are emited, the cold one nested within the regular one. They both share the same action table and type table.

A symbol is amited for the cold function, using the name of the function suffixed by $cold . Emiting a symbol is required when using .subsections_via_symbols .

Debug informations aren't supported at this stage.

http://reviews.llvm.org/D17555

Files:
  include/llvm/CodeGen/AsmPrinter.h
  include/llvm/MC/MCObjectFileInfo.h
  include/llvm/MC/MCStreamer.h
  include/llvm/MC/MCTargetOptions.h
  include/llvm/MC/MCTargetOptionsCommandFlags.h
  include/llvm/MC/SectionKind.h
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/CodeGen/AsmPrinter/AsmPrinterHandler.h
  lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
  lib/CodeGen/AsmPrinter/DwarfException.h
  lib/CodeGen/AsmPrinter/EHStreamer.cpp
  lib/CodeGen/AsmPrinter/EHStreamer.h
  lib/MC/MCObjectFileInfo.cpp
  lib/MC/MCStreamer.cpp
  lib/MC/MCTargetOptions.cpp
  test/CodeGen/X86/coldsplit.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17555.48857.patch
Type: text/x-patch
Size: 37672 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160224/164237b5/attachment.bin>


More information about the llvm-commits mailing list