[eigen-commits] commit/eigen: jlebar: Eliminate mutual recursion in igamma{, c}_impl::Run.

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen-commits Archives ]


1 new commit in eigen:

https://bitbucket.org/eigen/eigen/commits/8e22cbaba11b/ Changeset: 8e22cbaba11b User: jlebar Date: 2016-04-28 20:57:08+00:00 Summary: Eliminate mutual recursion in igamma{,c}_impl::Run.

Presently, igammac_impl::Run calls igamma_impl::Run, which in turn calls igammac_impl::Run.

This isn't actually mutual recursion; the calls are guarded such that we never get into a loop. Nonetheless, it's a stretch for clang to prove this. As a result, clang emits a recursive call in both igammac_impl::Run and igamma_impl::Run.

That this is suboptimal code is bad enough, but it's particularly bad when compiling for CUDA/nvptx. nvptx allows recursion, but only begrudgingly: If you have recursive calls in a kernel, it's on you to manually specify the kernel's stack size. Otherwise, ptxas will dump a warning, make a guess, and who knows if it's right.

This change explicitly eliminates the mutual recursion in igammac_impl::Run and igamma_impl::Run. Affected #: 1 file

Repository URL: https://bitbucket.org/eigen/eigen/

This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/