Displaying 2 results from an estimated 2 matches for "seh_pushreg".
2019 Jun 25
3
Potential missed optimisation with SEH funclets
...}
Compiling with CL, the unwind funclet that destroys ‘x’ is just two lines of asm:
lea rcx, QWORD PTR x$[rdx]
jmp ??1MyClass@@QEAA at XZ
However when compiling with clang-cl, it seems like it sets up an entire function frame just for the destructor call:
mov qword ptr [rsp + 16], rdx
push rbp
.seh_pushreg 5
sub rsp, 32
.seh_stackalloc 32
Lea rbp, [rdx + 48]
.seh_endprologue
Lea rcx, [rbp - 16]
call "??1MyClass@@QEAA at XZ”
nop
add rsp, 32
pop rbp
ret
Both were compiled with “/c /O2 /MD /EHsc”
Is LLVM missing a major optimisation here?
-------------- next part --------------
An HTML attachment...
2017 Dec 14
2
x86-64 unwind additions
Hi all,
We're at the point in our port of OpenVMS to x86-64 that we're working
on the unwind code. The current ABI and the current codebase doesn't
have enough support for true asynchronous unwinding from any point (most
notably in the prologue/epilogue) in the code that OpenVMS needs. We're
working on a set of changes to the compact unwind information to handle
the additional