Karel Gardas
2011-Jun-17 20:31 UTC
[LLVMdev] ARM support status (GHC/ARM new calling convention)
John, I've moved with patches to HEAD and unfortunately the comments about disabling tailcalls do not go away with this update. Please see ARMTargetLowering::LowerCall in lib/Target/ARM/ARMISelLowering.cpp line 1208 and later. It looks like man can use -arm-tail-calls, but one never knows how good it is since the comment tells it clearly: // Temporarily disable tail calls so things don't break. so I would like to ask what's the status of tailcalls in LLVM on ARM platform? Thanks a lot! Karel On 06/16/11 11:00 PM, John McCall wrote:>> Also in the llvm::ARMTargetLowering::LowerCall I see a comment >> about disabling tailcalls just to not break things. > > I believe this has been changed on ToT, so since Haskell is > presumably completely dependent on tail calls working, you'll need to > work there.
Cameron Zwarich
2011-Jun-17 20:41 UTC
[LLVMdev] ARM support status (GHC/ARM new calling convention)
They work pretty well now, at least on Thumb2 / Darwin. It is still fairly conservative about when to use tail calls, and doesn't support GuaranteedTailCallOpt, which might be necessary for GHC. Cameron On Jun 17, 2011, at 1:31 PM, Karel Gardas wrote:> > John, > > I've moved with patches to HEAD and unfortunately the comments about > disabling tailcalls do not go away with this update. Please see > ARMTargetLowering::LowerCall in lib/Target/ARM/ARMISelLowering.cpp line > 1208 and later. It looks like man can use -arm-tail-calls, but one never > knows how good it is since the comment tells it clearly: > > // Temporarily disable tail calls so things don't break. > > so I would like to ask what's the status of tailcalls in LLVM on ARM > platform? > > Thanks a lot! > Karel > > On 06/16/11 11:00 PM, John McCall wrote: >>> Also in the llvm::ARMTargetLowering::LowerCall I see a comment >>> about disabling tailcalls just to not break things. >> >> I believe this has been changed on ToT, so since Haskell is >> presumably completely dependent on tail calls working, you'll need to >> work there. > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Karel Gardas
2011-Jun-17 20:49 UTC
[LLVMdev] ARM support status (GHC/ARM new calling convention)
Hello Cameron, thanks a lot for your fast answer, which just makes me curious if making ARM tailcalls on par with x86 in the future is on some of the development plans already? If not, then what do you think is the complexity of such work? Thanks! Karel On 06/17/11 10:41 PM, Cameron Zwarich wrote:> They work pretty well now, at least on Thumb2 / Darwin. It is still fairly conservative about when to use tail calls, and doesn't support GuaranteedTailCallOpt, which might be necessary for GHC. > > Cameron > > On Jun 17, 2011, at 1:31 PM, Karel Gardas wrote: > >> >> John, >> >> I've moved with patches to HEAD and unfortunately the comments about >> disabling tailcalls do not go away with this update. Please see >> ARMTargetLowering::LowerCall in lib/Target/ARM/ARMISelLowering.cpp line >> 1208 and later. It looks like man can use -arm-tail-calls, but one never >> knows how good it is since the comment tells it clearly: >> >> // Temporarily disable tail calls so things don't break. >> >> so I would like to ask what's the status of tailcalls in LLVM on ARM >> platform? >> >> Thanks a lot! >> Karel >> >> On 06/16/11 11:00 PM, John McCall wrote: >>>> Also in the llvm::ARMTargetLowering::LowerCall I see a comment >>>> about disabling tailcalls just to not break things. >>> >>> I believe this has been changed on ToT, so since Haskell is >>> presumably completely dependent on tail calls working, you'll need to >>> work there. >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >
Apparently Analagous Threads
- [LLVMdev] ARM support status (GHC/ARM new calling convention)
- [LLVMdev] ARM support status (GHC/ARM new calling convention)
- [LLVMdev] ARM support status (GHC/ARM new calling convention)
- [LLVMdev] ARM support status (GHC/ARM new calling convention)
- [LLVMdev] ARM support status (GHC/ARM new calling convention)