Displaying 4 results from an estimated 4 matches for "parent_fn".
Did you mean:
parent_fs
2014 Nov 18
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
> On Nov 17, 2014, at 5:50 PM, Reid Kleckner <rnk at google.com> wrote:
>
> On Mon, Nov 17, 2014 at 5:22 PM, Bob Wilson <bob.wilson at apple.com <mailto:bob.wilson at apple.com>> wrote:
> I don’t know much about SEH and haven’t had time to really dig into this, but the idea of outlining functions that need to know about the frame layout sounds a bit scary. Is it
2014 Nov 25
4
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
> We should also think about how to call std::terminate when cleanup dtors throw. The current representation for Itanium is inefficient. As a strawman, I propose making @__clang_call_terminate an intrinsic:
…
That sounds like a good starting point.
> Chandler expressed strong concerns about this design, however, as @llvm.eh.get_capture_block adds an ordering constraint on CodeGen. Once
2014 Nov 18
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
...a with a new combined struct type
> - Outline code from landing pads into cleanup handlers, filters, catch handlers, etc
> - In the parent function entry block, call @llvm.eh.seh.set_capture_block on the combined alloca
> - In the outlined entry blocks, call @llvm.eh.seh.get_capture_block(@parent_fn, i8* %rbp) to recover a pointer to the capture block. Cast it to a pointer to the right type.
> - Finally, RAUW all alloca references with GEPs into the capture block
>
> The downside is that this approach probably hurts register allocation and stack coloring, but I think it's a reaso...
2014 Dec 03
3
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
...; the resolution of the frame offset to assembly time using an MCSymbolRef.
> It would look a lot like this kind of assembly:
>
> my_handler:
> push %rbp
> mov %rsp, %rbp
> lea Lframe_offset0(%rdx), %rax ; This is now the parent capture block
> ...
> retq
>
> parent_fn:
> push %rbp
> mov %rsp, %rbp
> push %rbx
> push %rdi
> subq $NN, %rsp
> Lframe_offset0 = X + 2 * 8 ; Two CSRs plus some offset into the main stack
> allocation
>
> I guess I'll try to make that work.
>
> I’ll think about this, but for now I’m happy to...