Displaying 9 results from an estimated 9 matches for "seh_endprologue".
2019 Jun 25
3
Potential missed optimisation with SEH funclets
...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 was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/att...
2014 Apr 17
2
[LLVMdev] [PATCH] Seh exceptions on Win64
...; after calls
> to noreturns. This is actually the prime motivation for me wanting to
> emit code for 'unreachable'
> <http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-April/072145.html> ...
>
> Vadim
Yaron also pointed out that
int main() { throw 1; }
generates two .seh_endprologue instructions. I still did not fix this bug.
Regards,
Kai
>
>
> On Tue, Apr 15, 2014 at 11:43 AM, Martell Malone
> <martellmalone at gmail.com <mailto:martellmalone at gmail.com>> wrote:
>
> Hi,
>
> I'd like to submit a patch to match the clang patc...
2015 Aug 16
2
[LLVMdev] Adding a stack probe function attribute
...gt;; flags: FrameSetup
Successors according to CFG: BB#2 BB#1
BB#2: derived from LLVM BB %0
Predecessors according to CFG: BB#1
%RSP<def,tied1> = SUB64rr %RSP<tied0>, %RAX, %EFLAGS<imp-def>;
flags: FrameSetup
SEH_StackAlloc 40040; flags: FrameSetup
SEH_EndPrologue; flags: FrameSetup
%RCX<def> = LEA64r %RSP, 1, %noreg, 40, %noreg
%EDX<def> = MOV32r0 %EFLAGS<imp-def,dead>
CALL64pcrel32 <ga:@dummy_use>, <regmask>, %RSP<imp-use>,
%RCX<imp-use>, %EDX<imp-use,kill>, %RSP<imp-def>...
2018 Feb 06
3
What does a dead register mean?
Hi,
My understanding of a "dead" register is a def that is never used. However,
when I dump the MI after reg alloc on a simple program I see the following
sequence:
ADJCALLSTACKDOWN64 0, 0, 0, *implicit-def dead %rsp*, implicit-def dead
%eflags, implicit-def dead %ssp, implicit %rsp, implicit %ssp
CALL64pcrel32 @foo, <regmask %bh %bl %bp %bpl %bx %ebp %ebx %rbp %rbx %r12
%r13 %r14
2015 Oct 27
2
How to create global symbol from record offset
I would like to create something like this (x86_64)
.section __DATA,__data
.align 4
_a:
.long 18
.globl _b
_b:
.long 48
If you like to notice, there is no alignment between _a and _b.
_b is basically offseting into a record structure.
----
When I use two discrete structs, I get .aligns and I also don't trust
the tools to keep the two globals together.
%struct.a = type { i32 }
2017 Nov 21
2
question about xray tls data initialization
...n call
.p2align 4, 0x90
call: # @call
.seh_proc call
# BB#0: # %entry
.p2align 1, 0x90
.Lxray_sled_0:
.ascii "\353\t"
nop word ptr [rax + rax + 512]
sub rsp, 16
.seh_stackalloc 16
.seh_endprologue
mov dword ptr [rsp + 12], ecx
mov dword ptr [rsp + 8], 0
mov dword ptr [rsp + 4], 0
.LBB0_1: # %for.cond
# =>This Inner Loop Header: Depth=1
mov eax, dword ptr [rsp + 4]
cmp eax, dword ptr [...
2015 Jul 28
1
[LLVMdev] Adding a stack probe function attribute
On Tue, Jul 28, 2015 at 6:34 PM, Reid Kleckner <rnk at google.com> wrote:
> On Tue, Jul 28, 2015 at 2:25 AM, John Kåre Alsaker
> <john.mailinglists at gmail.com> wrote:
>>
>> On Tue, Jul 28, 2015 at 12:44 AM, Reid Kleckner <rnk at google.com> wrote:
>> > Yeah, the function attributes section of LangRef is a reasonable place
>> > to
>>
2017 Nov 16
2
question about xray tls data initialization
I'm learning the xray library and try if it can be built on windows, in
xray_fdr_logging_impl.h
line 152 , comment written as
// Using pthread_once(...) to initialize the thread-local data structures
but at line 175, 183, code written as
thread_local pthread_key_t key;
// Ensure that we only actually ever do the pthread initialization once.
thread_local bool UNUSED Unused = [] {
2014 Apr 15
10
[LLVMdev] [PATCH] Seh exceptions on Win64
Hi,
I'd like to submit a patch to match the clang patch on the front end.
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140414/103257.html
The front end doesn't need this patch to work but it's still important.
This is mostly based on work done by kai from redstar.de
Could I get some feedback on this?
I'm not sure if the emitting of the register names will effect