aboutsummaryrefslogtreecommitdiffhomepage
path: root/.hgignore
diff options
context:
space:
mode:
authorGravatar Justin Lebar <justin.lebar@gmail.com>2016-04-28 13:57:08 -0700
committerGravatar Justin Lebar <justin.lebar@gmail.com>2016-04-28 13:57:08 -0700
commit40d1e2f8c7a85b7c0522d11d6e3d0c6a18bc9721 (patch)
treee19334d23d57e3a72d8e3431c409eaa48187ed50 /.hgignore
parent3ec81fc00f447ce47df079c66450c680155ceeb4 (diff)
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.
Diffstat (limited to '.hgignore')
0 files changed, 0 insertions, 0 deletions