search for: fold_aux

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

2009 Nov 13
0
[LLVMdev] opt -std-compile-opts breaks tail calls
On Nov 13, 2009, at 3:34 AM, Jon Harrop wrote: >> Point 4 is the one that caused me trouble for some time. >> Unfortunately >> it causes a bad interaction with the optimiser, specifically the >> 'simplifycfg' pass. What seems to happen is that since the function >> you are calling is marked with 'noreturn', the simplifycfg pass will >> then
2009 Nov 13
2
[LLVMdev] opt -std-compile-opts breaks tail calls
...t;> optimiser was run on them. > > > > Isn't that a bug in LLVM? > > Yes, please file a bugzilla with a small example. I think I may be having a similar problem, albeit with with noalias rather than noreturn. This is my tail recursive function: define fastcc noalias i8* @fold_aux(%2*, i32, i8* (%2*, %2, double)*, %2, %0) { entry: %5 = load i32* @shadow_stack_depth ; <i32> [#uses=4] %6 = alloca %2, align 8 ; <%2*> [#uses=2] %7 = load %0* @shadow_stack ; <%0> [#uses=1] %8 = extractvalue %0 %7,...
2009 Nov 13
2
[LLVMdev] opt -std-compile-opts breaks tail calls
On Friday 13 November 2009 04:57:43 David Terei wrote: > I've run into some issues with tail calls in the past, make sure you > are doing the following: > > 1. Call should be marked with tail (obviously) > 2. Next statement after tail call should be 'return void' > 3. Use fast call convention for tail calls > 4. Make sure the function you are calling doesn't