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 > >
Cameron Zwarich
2011-Jun-17 20:57 UTC
[LLVMdev] ARM support status (GHC/ARM new calling convention)
I don't know if GuaranteedTailCallOpt is in anyone's plans. It might be a good idea to implement some time. I am not sure what GHC's exact needs are, though. Cameron On Jun 17, 2011, at 1:49 PM, Karel Gardas wrote:> > 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 >> >> >
David Terei
2011-Jun-17 23:42 UTC
[LLVMdev] ARM support status (GHC/ARM new calling convention)
On 17 June 2011 13:57, Cameron Zwarich <zwarich at apple.com> wrote:> I don't know if GuaranteedTailCallOpt is in anyone's plans. It might be a good idea to implement some time. I am not sure what GHC's exact needs are, though.We (GHC) simply rely of the sibling call optimisation: http://llvm.org/docs/CodeGenerator.html#sibcallopt We don't use the GuaranteedTailCallOpt any more as we always generate code that meets the condition for sibling call opt and it generates much better code than GuaranteedTailCallOpt. (GuaranteedTailCallOpt did a lot of silly stack ptr movement, not sure if still the case). Cheers, David> > Cameron > > On Jun 17, 2011, at 1:49 PM, Karel Gardas wrote: > >> >> 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 >>> >>> >> > > _______________________________________________ > 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)