Displaying 1 result from an estimated 1 matches for "1myclass".
Did you mean:
myclass
2019 Jun 25
3
Potential missed optimisation with SEH funclets
...funclets generated by LLVM are much larger than those generated by Microsoft’s CL compiler.
I used the following code as a test:
void test() {
MyClass x;
externalFunction();
}
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@@QE...