search for: _z1gv

Displaying 3 results from an estimated 3 matches for "_z1gv".

Did you mean: _z1fv
2020 Oct 03
2
Another tail call optimization question
Hello, Could anyone kindly explain to me why the 'g()' in the following function cannot have tail call optimization? > void f(int* x); > void g(); > void h(int v) { > f(&v); > g(); > } > A while ago I was taught that tail call optimization cannot apply if local variables needs to be kept alive, but 'g()' doesn't seem to require anything to be
2007 Dec 12
0
[LLVMdev] Darwin vs exceptions
...al, though it is simpler if you suppose the IR was produced by gcc. Consider this example: class A {}; class B {}; int i; extern void f(); void g() { try { f(); } catch(A) { i = 1; } } void h() { try { g(); } catch(B) { i = 2; } } Without catch-alls this compiles to something like: define void @_Z1gv() { entry: invoke void @_Z1fv( ) to label %UnifiedReturnBlock unwind label %lpad ... lpad: ; preds = %entry %eh_ptr = tail call i8* @llvm.eh.exception( ) %eh_select = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i32 (...)* @__gxx_personality_v0, i8* A) %eh_typeid = tai...
2007 Dec 10
3
[LLVMdev] Darwin vs exceptions
On Dec 10, 2007, at 11:38 AM, Duncan Sands wrote: >>> ... If you force a "cleanup" by changing the selector call to: >>> %eh_select8.i = tail call i32 (i8*, i8*, ...)* >>> @llvm.eh.selector.i32( i8* %eh_ptr.i, i8* bitcast (i32 (...)* >>> @__gxx_personality_v0 to i8*), i32 0) >>> then it doesn't work either: the unwinder observes that