mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-29 10:25:12 +00:00
Add the llvm.frameallocate and llvm.recoverframeallocation intrinsics
These intrinsics allow multiple functions to share a single stack allocation from one function's call frame. The function with the allocation may only perform one allocation, and it must be in the entry block. Functions accessing the allocation call llvm.recoverframeallocation with the function whose frame they are accessing and a frame pointer from an active call frame of that function. These intrinsics are very difficult to inline correctly, so the intention is that they be introduced rarely, or at least very late during EH preparation. Reviewers: echristo, andrew.w.kaylor Differential Revision: http://reviews.llvm.org/D6493 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225746 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -72,6 +72,11 @@ namespace ISD {
|
||||
/// the parent's frame or return address, and so on.
|
||||
FRAMEADDR, RETURNADDR,
|
||||
|
||||
/// RECOVER_FRAME_ALLOC - Represents the llvm.recoverframeallocation
|
||||
/// intrinsic. Materializes the offset from the frame pointer of another
|
||||
/// function to the result of llvm.frameallocate.
|
||||
RECOVER_FRAME_ALLOC,
|
||||
|
||||
/// READ_REGISTER, WRITE_REGISTER - This node represents llvm.register on
|
||||
/// the DAG, which implements the named register global variables extension.
|
||||
READ_REGISTER,
|
||||
|
Reference in New Issue
Block a user