llvm-6502/include/llvm/IR
Reid Kleckner 34c6bb0ef0 [SEH] Add new intrinsics for recovering and restoring parent frames
The incoming EBP value established by the runtime is actually a pointer
to the end of the EH registration object, and not the true parent
function frame pointer. Clang doesn't need llvm.x86.seh.exceptioninfo
anymore because we know that the exception info pointer is at a fixed
offset from this incoming EBP.

The llvm.x86.seh.recoverfp intrinsic takes an EBP value provided by the
EH runtime and returns a pointer that is usable with llvm.framerecover.

The llvm.x86.seh.restoreframe intrinsic is inserted by the 32-bit
specific preparation pass in blocks targetted by the EH runtime. It
re-establishes any physical registers used by the parent function to
address the stack, such as the frame, base, and stack pointers.

Neither of these intrinsics correctly handle stack realignment prologues
yet, but it's possible to add that later.

Reviewers: majnemer

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241125 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-30 22:46:59 +00:00
..
Argument.h
AssemblyAnnotationWriter.h
Attributes.h
AutoUpgrade.h
BasicBlock.h
CallingConv.h
CallSite.h [Verifier] Follow on to 240836 2015-06-26 22:04:34 +00:00
CFG.h
CMakeLists.txt
Comdat.h
Constant.h Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
ConstantFolder.h
ConstantRange.h
Constants.h Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
DataLayout.h DataLayout now returns a const ref to its member string representation 2015-06-26 20:44:16 +00:00
DebugInfo.h
DebugInfoFlags.def
DebugInfoMetadata.h Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
DebugLoc.h
DerivedTypes.h
DiagnosticInfo.h
DiagnosticPrinter.h
DIBuilder.h Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
Dominators.h
Function.h
GetElementPtrTypeIterator.h
GlobalAlias.h
GlobalObject.h
GlobalValue.h Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
GlobalVariable.h Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
GVMaterializer.h
InlineAsm.h
InstIterator.h
InstrTypes.h Devirtualize Instruction::clone_impl 2015-06-24 20:22:23 +00:00
Instruction.def
Instruction.h Devirtualize Instruction::clone_impl 2015-06-24 20:22:23 +00:00
Instructions.h Devirtualize Instruction::clone_impl 2015-06-24 20:22:23 +00:00
InstVisitor.h
IntrinsicInst.h
Intrinsics.h
Intrinsics.td
IntrinsicsAArch64.td
IntrinsicsAMDGPU.td
IntrinsicsARM.td Do not treat ARM _MoveToCoprocessor* intrinsics as MSBuiltins. 2015-06-24 06:07:41 +00:00
IntrinsicsBPF.td
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td Add missing builtins to the PPC back end for ABI compliance (vol. 1) 2015-06-26 19:26:53 +00:00
IntrinsicsSystemZ.td
IntrinsicsX86.td [SEH] Add new intrinsics for recovering and restoring parent frames 2015-06-30 22:46:59 +00:00
IntrinsicsXCore.td
IRBuilder.h [IRBuilder] Delete unused constructor and SetInsertPoint overload. 2015-06-30 22:38:22 +00:00
IRPrintingPasses.h
LegacyPassManager.h
LegacyPassManagers.h
LegacyPassNameParser.h
LLVMContext.h
Mangler.h
MDBuilder.h
Metadata.def Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
Metadata.h Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
MetadataTracking.h
Module.h DataLayout now returns a const ref to its member string representation 2015-06-26 20:44:16 +00:00
ModuleSlotTracker.h CodeGen: Push the ModuleSlotTracker through Metadata 2015-06-26 22:28:47 +00:00
NoFolder.h
OperandTraits.h
Operator.h
PassManager.h
PassManagerInternal.h
PatternMatch.h
PredIteratorCache.h
Statepoint.h
SymbolTableListTraits.h
TrackingMDRef.h
Type.h
TypeBuilder.h
TypeFinder.h
Use.h
UseListOrder.h
User.h
Value.def
Value.h IR: Expose ModuleSlotTracker in Value::print() 2015-06-27 00:38:26 +00:00
ValueHandle.h Add simplify_type<const WeakVH>; simplify IndVarSimplify 2015-06-24 22:23:21 +00:00
ValueMap.h
ValueSymbolTable.h
Verifier.h