Displaying 20 results from an estimated 600 matches similar to: "[LLVMdev] how to resolve llvm exception IR?"
2009 May 12
1
[LLVMdev] How distinguish Catch all llvm-IR from other catch type ?
Hi,
catch_all.cpp:
1 int main()
2 {
3 try {
4 throw 34;
5 }
6 catch (...) {}
7 }
llvm-gcc -O3 -S -emit-llvm catch_all.cpp -o catch_all.ll:
1 ; ModuleID = 'catch_all.cpp'
2 target datalayout =
2007 Dec 12
0
[LLVMdev] Darwin vs exceptions
Hi Dale,
> No, I don't want to change the semantics of invoke, at least I don't
> think so.
> When inlining, I want the inlined throw to reach cleanup code as it
> does.
> But I want the Unwind_Resume call that ends the cleanup code to be
> replaced with a control transfer to the handler (or cleanup) in the
> calling
> function, i.e. the inliner needs to know
2010 Dec 01
10
[LLVMdev] RFC: Exception Handling Proposal Revised
This is a revision of the second exception handling proposal I sent out. You can see it here:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-November/036484.html
After much discussion, there are some changes to the proposal – some significant and some minor. One major point, this proposal does not address the issue of catching an exception thrown from a non-invoke instruction. However if done
2010 Dec 01
0
[LLVMdev] Alternative exception handling proposal
On Dec 1, 2010, at 1:37 PM, Duncan Sands wrote:
> Executive summary
> -----------------
>
> Remove the personality and list of catches out of eh.selector and stick them
> directly on invoke instructions.
>
> The invoke instruction
> ----------------------
>
> The invoke instruction is modified by adding extra catch info to it:
>
> <result> = invoke
2009 Nov 24
0
[LLVMdev] RFC: New Exception Handling Proposal
I have a couple of questions/concerns. The main one has to do with the
opacity of exception types - in other words, will it still be true that
the exception types are opaque identifiers, and are only interpreted by
the personality function?
Since my object representations are not C++-like, I am not using any of
the cxa_* C++ library functions. Instead, my code calls the _Unwind
functions
2009 Apr 28
0
[LLVMdev] how to resolve llvm exception IR?
Hi zhangzw,
...
> 59 %3 = invoke
> %"struct.std::basic_ostream<char,std::char_traits<char> >"*
> @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"struct.std::basic_ostream<char,std::char_traits<char>
> >"* @_ZSt4cout, i8* getelementptr ([10 x i8]* @.str, i32 0, i32 0))
> 60 to label %bb6
2010 Dec 01
2
[LLVMdev] RFC: Exception Handling Proposal Revised
On Dec 1, 2010, at 10:20 AM, Duncan Sands wrote:
> Hi Bill, this proposal seems strangely complicated. I don't see the advantage
> of the dispatch instruction over just attaching the information to each invoke.
> Right now you have
>
> invoke void @_Z3foov()
> to label %invcont unwind label %catch.handlers
>
> catch.handlers: landingpad
> dispatch resume
2009 Nov 18
11
[LLVMdev] RFC: New Exception Handling Proposal
I've been looking into a new way to implement exception handling in
LLVM. The current model has many disadvantages, in my opinion. I try
to address them with this proposal. I also try to make exception
handling much more understandable to the normal human reader. :-) Any
new proposal will need to address all present and future languages'
exception handling methodologies. I
2010 Dec 01
0
[LLVMdev] RFC: Exception Handling Proposal Revised
Hi Bill, this proposal seems strangely complicated. I don't see the advantage
of the dispatch instruction over just attaching the information to each invoke.
Right now you have
invoke void @_Z3foov()
to label %invcont unwind label %catch.handlers
catch.handlers: landingpad
dispatch resume to label %...
catches [
%struct.__fundamental_type_info_pseudo* @_ZTIi, label
2007 Dec 09
0
[LLVMdev] Darwin vs exceptions
Hi Dale,
> #include <cstdio>
> class A {
> public:
> A() {}
> ~A() {}
> };
> void f() {
> A a;
> throw 5.0;
> }
> main() {
> try {
> f();
> } catch(...) { printf("caught\n"); }
> }
this example indeed shows the problem. Let me explain to see if we agree on what
the problem is. Suppose we don't artificially
2010 Dec 01
8
[LLVMdev] Alternative exception handling proposal
Here is an alternative proposal to Bill's. It is closer to what we already
have (which can be seen as a good or a bad thing!), and is also closer to
what gcc does. It is more incremental than Bill's and introduces fewer
new concepts.
Executive summary
-----------------
Remove the personality and list of catches out of eh.selector and stick them
directly on invoke instructions.
The
2009 Mar 26
2
[LLVMdev] how to get the InvodInst 's Operand Name?
HI all,
here is a llvm IR :
invoke void @__cxa_throw(i8* %7, i8* bitcast
(%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)*
null)
noreturn to label %invcont unwind label %lpad
say I want to get the Invoke's Operand's name, I use
getOperand(i)->getName(), it can work for that the Operand hasname,
but some Operand hasn't name,
So, My problem is how
2009 Mar 26
2
[LLVMdev] how to get the InvodInst 's Operand Name?
Hi Duncan,
>>are you trying to get the name "@_ZTIi" or "@__cxa_throw"?
yes! i want get the name @_ZTi or @__cxa_throw,
the latter @__cxa_throw i can get it throw value->getName(), but the
@_ZTi it did n't has name!
zhangzw
thanks
2009/3/26 Duncan Sands <baldrick at free.fr>:
> Hi zhangzw,
>
>> invoke void @__cxa_throw(i8* %7, i8*
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
On Dec 9, 2007, at 1:01 PM, Duncan Sands wrote:
> Hi Dale,
>
>> #include <cstdio>
>> class A {
>> public:
>> A() {}
>> ~A() {}
>> };
>> void f() {
>> A a;
>> throw 5.0;
>> }
>> main() {
>> try {
>> f();
>> } catch(...) { printf("caught\n"); }
>> }
>
> this example
2009 Mar 26
0
[LLVMdev] how to get the InvodInst 's Operand Name?
Hi zhangzw,
> invoke void @__cxa_throw(i8* %7, i8* bitcast
> (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)*
> null)
> noreturn to label %invcont unwind label %lpad
>
> say I want to get the Invoke's Operand's name
are you trying to get the name "@_ZTIi" or "@__cxa_throw"?
Ciao,
Duncan.
2009 Mar 26
0
[LLVMdev] how to get the InvodInst 's Operand Name?
Hi zhangzw,
>> invoke void @__cxa_throw(i8* %7, i8* bitcast
>> (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)*
>> null)
>> noreturn to label %invcont unwind label %lpad
>
> >>are you trying to get the name "@_ZTIi" or "@__cxa_throw"?
>
> yes! i want get the name @_ZTi or @__cxa_throw,
> the latter
2010 Dec 06
4
[LLVMdev] Inlining and exception handling in LLVM and GCC
The poor interaction between exception handling and inlining in LLVM is one of
the main motivations for the new exception handling models proposed recently.
Here I give my analysis of the origin of the problem in the hope of clarifying
the situation.
Soon after dwarf exception handling was implemented in LLVM, I noticed that some
programs would fail when compiled at -O3, for example the
2009 Sep 06
0
[LLVMdev] Non-local DSE optimization
Jakub Staszak wrote:
> Hi,
>
> It looks like PDT.getRootNode() returns NULL for:
>
> define fastcc void @c974001__lengthy_calculation.
> 1736(%struct.FRAME.c974001* nocapture %CHAIN.185) noreturn {
> entry:
> br label %bb
>
> bb:
> br label %bb
> }
>
>
> Isn't it a bug in PostDominatorTree?
>
> Please note that this crashes:
>
2010 Dec 02
0
[LLVMdev] Alternative exception handling proposal
On Dec 2, 2010, at 2:21 AM, Duncan Sands wrote:
> Hi Bill,
>
>> This is similar to my first proposal.
>
> yup, I still consider your first proposal to have been basically sound.
>
> But it also suffers from a major problem,
>> which stopped that proposal dead in its tracks. Namely, you have information in
>> one place which needs to be shared in two
2009 Sep 08
2
[LLVMdev] Non-local DSE optimization
Hello,
Bug is already fixed by Chris (see: http://llvm.org/bugs/show_bug.cgi?id=4915)
.
I added getRootNode() == NULL condition to my patch. It's not a great
solution, but it is enough for now I think. New patch attached.
-Jakub
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dse_ssu-2.patch
Type: application/octet-stream
Size: 17762 bytes
Desc: not