Displaying 7 results from an estimated 7 matches for "cleanupret".
2015 Jul 01
2
[LLVMdev] New EH representation for MSVC compatibility
...'re eager to build our EH support in LLILC on top of
> this.
>
A preliminary step was to push personality routines off of LandingPadInst
and onto functions, this is already in trunk.
On the IR front, we ended up with the following set of instructions:
catcblock, catchret, cleanupblock, cleanupret, terminateblock
Of these, I've locally added basic support for catchblock, catchret and
cleanupret. I'm working on cleanupblock and terminateblock as we speak.
We'll still need to hook up CodeGenPrep and SDAG up to the new
representation.
Extra hands will be appreciated auditing LLV...
2016 Apr 04
2
How to call an (x86) cleanup/catchpad funclet
...sp
popl %ebp
retl # CATCHRET
cleanup:
"?dtor$2@?0?m2 at 4HA":
LBB3_2:
pushl %ebp
subl $8, %esp
addl $12, %ebp
movl %ebp, %eax
movl %esp, %ecx
movl %eax, 4(%ecx)
movl $1, (%ecx)
calll m2$Fin
addl $8, %esp
popl %ebp
retl # CLEANUPRET
What do I pass to these to get a valid frame on the other end?
The cleanup one calls the finally and properly returns, but what about
the catch?
--
Carlo Kok
2015 Jun 18
2
[LLVMdev] New EH representation for MSVC compatibility
On Wed, Jun 17, 2015 at 6:18 PM, Philip Reames <listmail at philipreames.com>
wrote:
> Since I haven't been following the thread closely, is there an updated
> summary of the original proposal available? I know that various parts I
> had concerns with (the unsplitable blocks for instance) got addressed, but
> I'm having trouble tracking all the changes in discussion.
2020 Jan 26
2
[RFC] Replacing inalloca with llvm.call.setup and preallocated
...i32 13,
i8* preallocated %m2,
i32 42,
i8* preallocated %m3)
[ "callsetup"(token %cs) ]
cleanup1:
%cl1 = cleanuppad unwind to caller
call void @dtor(i8* %m1) [ "funclet"(token %cl1) ]
cleanupret %cl1 to label %cleanup0
cleanup0:
%cl0 = cleanuppad unwind to caller
call void @dtor(i8% %m0) [ "funclet"(token %cl2) ]
cleanupret %cl0 to label %cleanupCall
cleanupCall:
%clC = cleanuppad unwind to caller
call void @llvm.call.teardown(token %cs) ;; Or llvm.call.cleanup?
cl...
2020 Apr 01
2
[RFC] [Windows SEH] Local_Unwind (Jumping out of a _finally) and -EHa (Hardware Exception Handling)
...gt;:34: ; preds = %32
br label %53,
; <label>:35: ; preds = %27
%36 = cleanuppad within none [],
%37 = call i8* @llvm.localaddress(),
invoke void @"?fin at 0@main@@"(i8 1, i8* %37) #7 [ "funclet"(token %36) ]
to label %38 unwind label %39,
; <label>:38: ; preds = %35
cleanupret from %36 unwind label %39,
; <label>:39: ; preds = %38, %35, %30
%40 = cleanuppad within none [],
%41 = call i8* @llvm.localaddress(),
invoke void @"?fin at 0@main@@"(i8 1, i8* %41) #7 [ "funclet"(token %40) ]
to label %42 unwind label %43,
; <label>:42: ; preds = %3...
2020 Apr 02
2
[RFC] [Windows SEH] Local_Unwind (Jumping out of a _finally) and -EHa (Hardware Exception Handling)
...ccurs, we must "unwind" to the target code, not just "jump" to target label
I'm not sure what you're trying to say here. In the Microsoft ABI, goto out of a catch block also calls into the unwinder. We have to run any destructors, and return from the funclet (catchret/cleanupret).
* The call inside a _try is an invoke with EH edge. So it's perfectly modeled.
If you call a nounwind function, the invoke will be transformed to a plain call. And we're likely to infer nounwind in many cases (for example, functions that don't call any other functions). Ther...
2020 Apr 02
2
[RFC] [Windows SEH] Local_Unwind (Jumping out of a _finally) and -EHa (Hardware Exception Handling)
Reply inline
From: Ten Tzen <tentzen at microsoft.com>
Sent: Wednesday, April 1, 2020 3:54 PM
To: Eli Friedman <efriedma at quicinc.com>; llvm-dev <llvm-dev at lists.llvm.org>
Cc: aaron.smith at microsoft.com
Subject: [EXT] RE: [llvm-dev] [RFC] [Windows SEH] Local_Unwind (Jumping out of a _finally) and -EHa (Hardware Exception Handling)
? For goto in finally, why are you