hanchenye-llvm-project/llvm/lib/CodeGen/AsmPrinter
Reid Kleckner df1295173f [WinEH] Emit prologues and epilogues for funclets
Summary:
32-bit funclets have short prologues that allocate enough stack for the
largest call in the whole function. The runtime saves CSRs for the
funclet. It doesn't restore CSRs after we finally transfer control back
to the parent funciton via a CATCHRET, but that's a separate issue.
32-bit funclets also have to adjust the incoming EBP value, which is
what llvm.x86.seh.recoverframe does in the old model.

64-bit funclets need to spill CSRs as normal. For simplicity, this just
spills the same set of CSRs as the parent function, rather than trying
to compute different CSR sets for the parent function and each funclet.
64-bit funclets also allocate enough stack space for the largest
outgoing call frame, like 32-bit.

Reviewers: majnemer

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D12546

llvm-svn: 247092
2015-09-08 22:44:41 +00:00
..
ARMException.cpp [EH] Handle non-Function personalities like unknown personalities 2015-08-31 20:02:16 +00:00
AddressPool.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
AddressPool.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
AsmPrinter.cpp [WinEH] Add some support for code generating catchpad 2015-08-27 23:27:47 +00:00
AsmPrinterDwarf.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
AsmPrinterHandler.h
AsmPrinterInlineAsm.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
ByteStreamer.h -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-03 20:12:58 +00:00
CMakeLists.txt AsmPrinter: Don't emit empty .debug_loc entries 2015-06-21 16:54:56 +00:00
DIE.cpp AsmPrinter: Split out non-DIE printing from DIE::print(), NFC 2015-08-02 20:46:49 +00:00
DIEHash.cpp AsmPrinter: Use an intrusively linked list for DIE::Children 2015-06-25 23:52:10 +00:00
DIEHash.h AsmPrinter: Convert DIE::Values to a linked list 2015-06-25 23:46:41 +00:00
DbgValueHistoryCalculator.cpp
DbgValueHistoryCalculator.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DebugLocEntry.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DebugLocStream.cpp AsmPrinter: Don't emit empty .debug_loc entries 2015-06-21 16:54:56 +00:00
DebugLocStream.h AsmPrinter: Don't emit empty .debug_loc entries 2015-06-21 16:54:56 +00:00
DwarfAccelTable.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
DwarfAccelTable.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DwarfCFIException.cpp [EH] Handle non-Function personalities like unknown personalities 2015-08-31 20:02:16 +00:00
DwarfCompileUnit.cpp Implement target independent TLS compatible with glibc's emutls.c. 2015-07-28 16:24:05 +00:00
DwarfCompileUnit.h Revert "[DWARF] Fix debug info generation for function static variables, typedefs, and records" 2015-07-01 18:07:16 +00:00
DwarfDebug.cpp Make DW_AT_[MIPS_]linkage_name optional, and off by default for SCE. 2015-08-11 21:36:45 +00:00
DwarfDebug.h Make DW_AT_[MIPS_]linkage_name optional, and off by default for SCE. 2015-08-11 21:36:45 +00:00
DwarfException.h [AsmPrinter] Hide implementation details 2015-07-01 16:18:16 +00:00
DwarfExpression.cpp Revert "[DWARF] Fix a few corner cases in expression emission" 2015-06-09 18:01:51 +00:00
DwarfExpression.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DwarfFile.cpp AsmPrinter: Use an intrusively linked list for DIE::Children 2015-06-25 23:52:10 +00:00
DwarfFile.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DwarfStringPool.cpp AsmPrinter: Avoid creating symbols in DwarfStringPool 2015-05-24 16:58:59 +00:00
DwarfStringPool.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DwarfUnit.cpp AsmPrinter: Allow null subroutine type 2015-08-28 21:38:24 +00:00
DwarfUnit.h AsmPrinter: Take DIEValueList in some DwarfUnit API, NFC 2015-08-02 20:44:46 +00:00
EHStreamer.cpp Use make_range(rbegin(), rend()) to allow foreach loops. NFC. 2015-07-24 21:13:43 +00:00
EHStreamer.h [AsmPrinter] Hide implementation details 2015-07-01 16:18:16 +00:00
ErlangGCPrinter.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
LLVMBuild.txt
Makefile
OcamlGCPrinter.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
WinCodeViewLineTables.cpp Fix some comment typos. 2015-08-08 18:27:36 +00:00
WinCodeViewLineTables.h [CodeView] Add support for emitting column information 2015-07-09 00:19:51 +00:00
WinException.cpp [WinEH] Emit prologues and epilogues for funclets 2015-09-08 22:44:41 +00:00
WinException.h [WinEH] Calculate state numbers for the new EH representation 2015-08-18 19:07:12 +00:00