Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] [WinEH] Cloning blocks that reference non-cloned PHI nodes"
2015 Apr 10
2
[LLVMdev] [WinEH] Cloning blocks that reference non-cloned PHI nodes
Just as an off-the-cuff idea that I haven’t thought through at all, what would you think of the possibility of replacing this:
%12 = call i32 @llvm.eh.typeid.for(i8* bitcast (%eh.CatchHandlerType* @llvm.eh.handlertype.H.0 to i8*))
%matches7 = icmp eq i32 %sel6, %12
with this:
%matches7 = call i32 @llvm.eh.cmp.selector(i32 %sel6, i8* bitcast (%eh.CatchHandlerType* @llvm.eh.handlertype.H.0
2015 Feb 12
2
[LLVMdev] RFC: Native Windows C++ exception handling
> We'd have to hoist a + b to somewhere that dominates L1 and L2. I think the only BB in your program that dominates is the entry block
I don't follow. What path do you see from entry to either L1 or L2 that doesn't pass through the indirectbr? In order to reach either L1 or L2, the call to maybe_throw() must raise an exception (else we'd return 0 from foo), the exception must
2015 May 13
2
[LLVMdev] [WinEH] A hiccup for the Windows C++ exception handling
I've been working recently to get the following test case working for an x86_64-pc-windows-msvc target.
void test1() {
try {
try {
throw 1;
} catch(...) {
throw;
}
} catch (...) {
}
}
I committed a patch earlier in the week to get the WinEHPrepare pass to produce IR that I thought was sufficient, but as I mentioned in the review I was still seeing runtime errors
2015 May 13
2
[LLVMdev] [WinEH] A hiccup for the Windows C++ exception handling
Have got anything started with the dispatchblock plan?
From: Reid Kleckner [mailto:rnk at google.com]
Sent: Wednesday, May 13, 2015 1:15 PM
To: Kaylor, Andrew
Cc: David Majnemer <david.majnemer at gmail.com> (david.majnemer at gmail.com); LLVM Developers Mailing List
Subject: Re: [WinEH] A hiccup for the Windows C++ exception handling
On Wed, May 13, 2015 at 11:03 AM, Kaylor, Andrew
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
Ah, ok. So if the outliner sees non-dispatch code in the landing pad area, it can find/create somewhere to put it and an appropriate eh.actions annotation to get an EH table generated that will ensure it gets executed appropriately at run-time (in this example, perform the add before invoking either handler); is that more or less the idea? That makes sense, thanks.
I have the same question
2015 Feb 13
2
[LLVMdev] RFC: Native Windows C++ exception handling
Yes, it seems like WinEHPrepare should always be able to move landing pad code to somewhere appropriate. Even if there's some involved code to handle the cases that force #1, it's great that the complexity is contained in WinEHPrepare.
I'm still confused about the apparent lack of constraints after WinEHPrepare. Can we simply require/assume that WinEHPrepare be run after any passes
2015 Feb 03
2
[LLVMdev] RFC: Replace __cxa_begin_catch/__cxa_end_catch with intrinsics
Hi all,
I brought this up last week in an LLVMDev discussion of C++ EH support on Windows, but I thought I should float it again with a subject that would be less likely to be missed by people who don't have a direct interest in Windows support.
I would like to introduce two new intrinsics, llvm.eh.begincatch and llvm.eh.endcatch, to take the place of __cxa_begin_catch and __cxa_end_catch in
2014 Nov 14
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
I don’t really have a good enough feeling for the landingpad syntax yet to comment on the most natural way to extend it yet, but creating a synthetic cleanup function to call from the personality function is what I was thinking.
With the current (trunk +/- a couple of weeks) clang, compiling for an “x86_64-pc-windows-msvc” target, I’m seeing a landingpad that looks like this:
lpad:
2015 May 19
3
[LLVMdev] WinEH work to be done (in progress and otherwise)
What follows is primarily addressed to Reid and David, but since it some of it is relevant to the Windows exception handling proposal under discussion, I thought I should copy the LLVMDev distribution list. Anyone interested should feel free to jump in and discuss.
My primary purpose here is to talk about what I'm working on so that anyone who is also working on the same things can let me
2015 May 19
0
[LLVMdev] WinEH work to be done (in progress and otherwise)
On Tue, May 19, 2015 at 2:16 PM, Kaylor, Andrew <andrew.kaylor at intel.com>
wrote:
> What follows is primarily addressed to Reid and David, but since it some
> of it is relevant to the Windows exception handling proposal under
> discussion, I thought I should copy the LLVMDev distribution list. Anyone
> interested should feel free to jump in and discuss.
>
>
>
>
2015 May 13
2
[LLVMdev] [WinEH] A hiccup for the Windows C++ exception handling
I made some progress this afternoon. I now have a set of changes in my local sandbox that allows clang to pass all of the tests in the suite I’ve been using to exercise this code.
How do you feel about working these changes into trunk to establish a working baseline, even knowing that parts of this are going to be redesigned?
-Andy
From: Reid Kleckner [mailto:rnk at google.com]
Sent:
2014 Nov 13
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
Thanks for the additional information.
Right now I’m experimenting with a mix of code compiled with MSVC and code compiled with clang, trying to get a C++ exception thrown and caught by the MSVC-compiled code across a function in the clang-compiled code. My goal here is to isolate a small part of what needs to be done in a way that lends itself to tinkering. I think this might lead me to the
2015 Jan 27
2
[LLVMdev] RFC: Native Windows C++ exception handling
I was thinking about this last night, and I came up with a third alternative which I think looks very promising. It’s basically a re-working of the previous alternative to use the landingpad concept rather than arbitrary fake logic, but it uses a single landing pad for the entire function that mimics the logic of the personality function to dispatch unwinding calls and catch handlers.
I believe
2015 May 15
8
[LLVMdev] RFC: New EH representation for MSVC compatibility
After a long tale of sorrow and woe, my colleagues and I stand here before
you defeated. The Itanium EH representation is not amenable to implementing
MSVC-compatible exceptions. We need a new representation that preserves
information about how try-catch blocks are nested.
WinEH background
-------------------------------
Skip this if you already know a lot about Windows exceptions. On Windows,
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
These are exactly the sorts of code transformations we want to allow by
delaying the outlining until later. By keeping such code inlined in the
parent function until after optimization, we enable a lot of core
optimizations like SROA. For example, we should be able to completely
eliminate wrappers like unique_ptr that would otherwise stay around due to
the pointer escaped to the destructor call
2017 Jan 05
2
WinEH funclet coloring in computeLoopSafetyInfo
I've been looking at compilation time issues in the LICM pass, and it looks to me like colorEHFunclets() is probably being called a lot more often than it needs to be for functions that have Windows EH personality functions. For one thing, the funclet coloring is happening when computeLoopSafetyInfo() is called from LoopIdiomRecognize and LoopUnswitch but those passes don't use the
2015 May 18
2
[LLVMdev] RFC: New EH representation for MSVC compatibility
On Mon, May 18, 2015 at 12:03 PM, Joseph Tremoulet <jotrem at microsoft.com>
wrote:
> Hi,
>
>
>
> Thanks for sending this out. We're looking forward to seeing this come
> about, since we need funclet separation for LLILC as well (and I have
> cycles to spend on it, if that would be helpful).
>
>
>
> Some questions about the new proposal:
>
>
>
2015 Feb 13
2
[LLVMdev] C++ exception handling
(Moving this discussion on list as this could be of general interest.)
My current work-in-progress implementation is attempting to map out the blocks used by a landing pad before it starts outlining. It creates a table of catch and cleanup handlers with the block at which each one starts. During outlining I intend to have another mechanism to check to see if we’ve already outlined the handler
2015 May 28
2
[LLVMdev] WinEH work to be done (in progress and otherwise)
Hi,
Have any decisions been made on where to put executable WinEH tests? Wherever they go, would it be helpful if I were to add some C++EH and/or SEH tests pulled from MSVC's test suite, since compatibility is the goal here?
Thanks
-Joseph
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Reid Kleckner
Sent: Tuesday, May 19, 2015 5:56 PM
To: Kaylor,
2015 May 28
1
[LLVMdev] WinEH work to be done (in progress and otherwise)
I think we should make a new svn repository for these. test-suite is the
logical place, but it's way too bloated and has too much Unix specific
baggage. I'd really like to have something that just uses lit, can be
checked out into projects, and can be run as part of check-all, like the
compiler-rt execution test suite.
My suggestion is to call it 'execution-tests', and we can