llvm-project/llvm/lib
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
..
Analysis Fix PR 24723 - Handle 0-mass backedges in irreducible loops 2015-09-08 19:22:17 +00:00
AsmParser Allow global address space forward decls using IDs in .ll files. 2015-09-03 18:06:44 +00:00
Bitcode [WinEH] Add cleanupendpad instruction 2015-09-03 09:09:43 +00:00
CodeGen [WinEH] Emit prologues and epilogues for funclets 2015-09-08 22:44:41 +00:00
DebugInfo [dwarfdump] Do not apply relocations in mach-o files if there is no LoadedObjectInfo. 2015-08-23 04:44:21 +00:00
ExecutionEngine [SectionMemoryManager] Use range-based for loops. No functional change intended. 2015-08-31 13:39:14 +00:00
Fuzzer [libFuzzer]Add a test for defeating a hash sum. 2015-09-08 21:22:52 +00:00
IR [IR] Have AttrBuilder::clear clear `TargetDepAttrs`. 2015-09-03 22:27:42 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LTO Fix typo. 2015-09-01 10:13:49 +00:00
LibDriver There is only one saver of strings. 2015-08-13 01:07:02 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker New bitcode linker flags: 2015-09-01 17:55:55 +00:00
MC [MC/ELF] Accept zero for .align directive 2015-09-08 18:59:47 +00:00
Object Re-apply r246276 - Object: Teach llvm-ar to create symbol table for COFF short import files 2015-08-28 07:40:30 +00:00
Option Add an ArgList::AddAllArgs that accepts a vector of OptSpecifier. 2015-07-29 17:34:41 +00:00
Passes [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
ProfileData Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Support Added arch extensions and default target features in TargetParser. 2015-09-05 17:05:33 +00:00
TableGen TableGen: Support folding casts from bits to int 2015-07-31 01:12:06 +00:00
Target [WinEH] Emit prologues and epilogues for funclets 2015-09-08 22:44:41 +00:00
Transforms Revert r247080, "LowerBitSets: Extend pass to support functions as bitset 2015-09-08 22:33:23 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00