]> granicus.if.org Git - llvm/commit
All libcalls should be considered to be GC-leaf functions.
authorDaniel Neilson <dneilson@azul.com>
Thu, 27 Jul 2017 16:49:39 +0000 (16:49 +0000)
committerDaniel Neilson <dneilson@azul.com>
Thu, 27 Jul 2017 16:49:39 +0000 (16:49 +0000)
commit9e8e51fbc4e56c9def4b661289a453ca79c5b84b
tree46eb1147e95ec09c7fd82ce21ac9352a5a73c35a
parent5a3180dd84bc8dbaa53ab07756adbd5adacbad8f
All libcalls should be considered to be GC-leaf functions.

Summary:
It is possible for some passes to materialize a call to a libcall (ex: ldexp, exp2, etc),
but these passes will not mark the call as a gc-leaf-function. All libcalls are
actually gc-leaf-functions, so we change llvm::callsGCLeafFunction() to tell us that
available libcalls are equivalent to gc-leaf-function calls.

Reviewers: sanjoy, anna, reames

Reviewed By: anna

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D35840

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309291 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/Utils/Local.h
lib/Transforms/Scalar/PlaceSafepoints.cpp
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
lib/Transforms/Utils/Local.cpp
test/Transforms/PlaceSafepoints/libcall.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/libcall.ll [new file with mode: 0644]