similar to: [LLVMdev] Which targets support TCO?

Displaying 20 results from an estimated 7000 matches similar to: "[LLVMdev] Which targets support TCO?"

2009 Nov 29
7
[LLVMdev] Possible bug in TCO?
Jon Harrop wrote: > I've come up with the following minimal repro that segfaults on my machine: Jon, were you able to resolve this? FWIW, TOT is causing all kinds of weird segfaults related to tail calls in my Pure interpreter, too (at least on x86-64). In my case these seem to be limited to the JIT, however (batch-compiled Pure programs via opt+llc all work fine, even with TCO), so
2009 Nov 25
3
[LLVMdev] Possible bug in TCO?
My compiler is generating a bunch of code including the following line: %57 = call fastcc i32 @aux(%1* %0, %1 %1, %1 %46, i32 0, %4 %2) ; <i32> [#uses=1] ret i32 %57 The program works fine as long as this isn't a tail call. If I compile via a .ll and insert "tail" by hand, the program segfaults. However, if I make it a tail call and return an undef i8* or void instead
2010 Dec 01
2
[LLVMdev] Tail calls not working with LLVM 2.8
I just upgraded HLVM from LLVM 2.7 to 2.8 and started seeing stack overflows so I think TCO isn't working. Have there been any obvious changes that would cause this? -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com
2009 Nov 25
0
[LLVMdev] Possible bug in TCO?
On Wednesday 25 November 2009 19:19:28 Jon Harrop wrote: > I'm using LLVM 2.6. Anyone recognise this as a bug in TCO fixed since then > or should I try to boil it down and submit it? I've come up with the following minimal repro that segfaults on my machine: define fastcc i32 @g({i32, {i32, i32}}) { %1 = extractvalue {i32, {i32, i32}} %0, 0 %2 = extractvalue {i32, {i32,
2009 Dec 08
0
[LLVMdev] Which targets support TCO?
It's not tested anywhere, so it probably breaks all the time everywhere. :( I see code trying to support it in: X86 and PowerPC (with `grep -r TailCall lib/Target/`). On Tue, Dec 8, 2009 at 12:42 PM, Jon Harrop <jon at ffconsultancy.com> wrote: > > Which of LLVM's backends support TCO? It seems to work on x86 and x64 but what > about ARM etc.? > > -- > Dr Jon
2009 Nov 29
0
[LLVMdev] Possible bug in TCO?
On Sun, Nov 29, 2009 at 2:19 AM, Albert Graef <Dr.Graef at t-online.de> wrote: > Jon Harrop wrote: >> I've come up with the following minimal repro that segfaults on my machine: > > Jon, were you able to resolve this? > > FWIW, TOT is causing all kinds of weird segfaults related to tail calls > in my Pure interpreter, too (at least on x86-64). In my case these
2010 Feb 05
8
[LLVMdev] Removing -tailcallopt?
Hi all, I've added tail call optimization to x86. This is different from what -tailcallopt does, which forces fastcc function to be tail callable. My changes detect opportunities to do tail call without having to change the ABI. I've looked at the codegen of -tailcallopt and it doesn't look all that good. Running it as a llcbeta option shows it significantly pessimize code in most
2010 Dec 01
0
[LLVMdev] Tail calls not working with LLVM 2.8
Jon Harrop wrote: > I just upgraded HLVM from LLVM 2.7 to 2.8 and started seeing stack overflows > so I think TCO isn't working. Have there been any obvious changes that would > cause this? FWIW, Pure uses TCO as well and that works fine with LLVM 2.8, both with the JIT and with statically compiled code, at least on x86_64. -- Dr. Albert Gr"af Dept. of Music-Informatics,
2009 Dec 08
2
[LLVMdev] Possible bug in TCO?
Jeffrey Yasskin wrote: > Try batch compiling with the large code model. (llc -code-model=large) > If that also causes tail calls to break, then I did something wrong in > fixing far calls in the JIT. Jeffrey, I took a closer look at this now, and all the TCO-related weirdness I see in the Pure interpreter is indeed related to your commit in r88984 ("Make X86-64 in the Large model
2009 Dec 08
0
[LLVMdev] Possible bug in TCO?
Albert Graef wrote: > Jeffrey Yasskin wrote: >> Try batch compiling with the large code model. (llc -code-model=large) >> If that also causes tail calls to break, then I did something wrong in >> fixing far calls in the JIT. > > Jeffrey, I took a closer look at this now, and all the TCO-related > weirdness I see in the Pure interpreter is indeed related to your commit
2010 Feb 06
0
[LLVMdev] Removing -tailcallopt?
Evan Cheng wrote: > As far as I can tell only PPC and X86 targets are supporting this option. Does anyone actually using it? I'd prefer to just remove it to clean up the implementation if no one has any objections. Don't know whether that is the same, but my Pure compiler sets llvm::PerformTailCallOpt. Pure needs TCO because it doesn't have any built-in looping constructs. In
2010 Feb 06
2
[LLVMdev] Removing -tailcallopt?
On Feb 5, 2010, at 7:19 PM, Jon Harrop wrote: > On Friday 05 February 2010 23:35:15 Evan Cheng wrote: >> Does anyone actually using it? > > Yes, many LLVM-based projects rely upon TCO to work correctly. Ok, that's all I need to know. > >> I'd prefer to just remove it to clean up the implementation if no one has >> any objections. > > Are you
2010 Feb 06
2
[LLVMdev] Removing -tailcallopt?
I am somewhat surprised people are actually using TCO. I had to fixed a number of subtle bugs to get it working and even now I am not too happy with it. My focus was on finding non-ABI changing automatic tail call cases (aka gcc's sibcall). It's now done so I'll leave -tailcallopt alone for now. I'll run -tailcallopt as x86 llcbeta to see if JIT is indeed broken. Evan On Feb 5,
2010 Feb 06
0
[LLVMdev] Removing -tailcallopt?
On Saturday 06 February 2010 02:42:47 Evan Cheng wrote: > On Feb 5, 2010, at 7:19 PM, Jon Harrop wrote: > > On Friday 05 February 2010 23:35:15 Evan Cheng wrote: > >> Does anyone actually using it? > > > > Yes, many LLVM-based projects rely upon TCO to work correctly. > > Ok, that's all I need to know. > > >> I'd prefer to just remove it to
2010 Feb 06
0
[LLVMdev] Removing -tailcallopt?
On Friday 05 February 2010 23:35:15 Evan Cheng wrote: > Does anyone actually using it? Yes, many LLVM-based projects rely upon TCO to work correctly. > I'd prefer to just remove it to clean up the implementation if no one has > any objections. Are you saying that you want to remove LLVM's working TCO and replace it with something that is faster but broken? I think you may
2009 Dec 08
2
[LLVMdev] Possible bug in TCO?
Nick Lewycky wrote: > Can you prepare a standalone testcase that demonstrates the problem? See > unittests/ExecutionEngine/JIT/*.cpp to get your started. Probably. I'd essentially have to replicate some minimal runtime environment and IR as created by the Pure interpreter. That's doable, but very tedious and will probably take a while. The problems are easy to reproduce by grabbing
2009 Dec 08
0
[LLVMdev] Possible bug in TCO?
On Tue, Dec 8, 2009 at 1:05 AM, Albert Graef <Dr.Graef at t-online.de> wrote: > Nick Lewycky wrote: >> Can you prepare a standalone testcase that demonstrates the problem? See >> unittests/ExecutionEngine/JIT/*.cpp to get your started. > > Probably. I'd essentially have to replicate some minimal runtime > environment and IR as created by the Pure interpreter.
2009 Feb 24
2
[LLVMdev] Broke my tail (call)
0, i32 %1) >> >> Note that if you have a series of sequential recursive tail calls this >> move will only performed once (at the bottom of the recursion, >> respectively when the recursion returns) so it's impact on performance >> should be minimal. > > Hmm, that makes it sound as though the moves between a tail call and the > following return are
2010 Jan 04
3
[LLVMdev] Tail Call Optimisation
On 04/01/2010, at 3:01 PM, Jon Harrop wrote: > On Monday 04 January 2010 01:12:55 Simon Harris wrote: >> I'm investigating "improving" the TCO facilities in LLVM to provide for >> "hard" tail calls. Specifically, this would involve extending the existing >> implementation to discard the stack frame for the caller before executing >> the callee. I
2010 Jan 04
2
[LLVMdev] Tail Call Optimisation
On Sun, Jan 3, 2010 at 10:50 PM, Jon Harrop <jon at ffconsultancy.com> wrote: > On Monday 04 January 2010 03:33:06 Simon Harris wrote: >> On 04/01/2010, at 3:01 PM, Jon Harrop wrote: >> > I am certainly interested in tail calls because my HLVM project relies >> > upon LLVM's tail call elimination. However, I do not understand what tail >> > calls LLVM