Displaying 3 results from an estimated 3 matches for "__zn1bd1ev".
Did you mean:
_zn1bd1ev
2010 Dec 02
0
[LLVMdev] Alternative exception handling proposal
...huge gap that cannot be easily recovered from, and may be impossible to recover from.
This is the code that G++ generates from the example in my proposal:
LEHB2:
call __Z3foov
LEHE2:
. . .
L24:
# basic block 10
movq %rax, %r12
L5:
# basic block 11
movl %edx, %ebx
leaq -18(%rbp), %rdi
call __ZN1BD1Ev
movslq %ebx,%rdx
jmp L7
. . .
L7:
# basic block 15
movl %edx, %ebx
leaq -17(%rbp), %rdi
call __ZN1AD1Ev
movslq %ebx,%rdx
jmp L19
. . .
L19:
# basic block 19
cmpq $3, %rdx
je L9
# basic block 20
cmpq $2, %rdx
jne L30
# basic block 21
jmp L39
. . .
L39: # The catch handler
. . .
GCC_e...
2010 Dec 02
3
[LLVMdev] Alternative exception handling proposal
Hi Bill,
> This is similar to my first proposal.
yup, I still consider your first proposal to have been basically sound.
But it also suffers from a major problem,
> which stopped that proposal dead in its tracks. Namely, you have information in
> one place which needs to be shared in two different, but possibly disjoint,
> places: the type, filters, and personality information. In
2010 Dec 03
1
[LLVMdev] Alternative exception handling proposal
...show you how my scheme handles them (or doesn't handle them, if I
am indeed failing to see something).
> This is the code that G++ generates from the example in my proposal:
...
> If the call to __Z3foov throws, we need to set up the tables to that it knows
> that it needs to call the __ZN1BD1Ev and __ZN1AD1Ev cleanups. This information
> requires looking at the invoke instruction – i.e., "where should I land?". It
> also needs to know which types it can catch in order to get the "action" variable.
>
> So the information is needed at the invoke site.
>
&g...