search for: parent_fn

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...