]> granicus.if.org Git - llvm/commit
Mark @llvm.powi.* as safe to speculatively execute.
authorwhitequark <whitequark@whitequark.org>
Wed, 25 Jan 2017 09:32:30 +0000 (09:32 +0000)
committerwhitequark <whitequark@whitequark.org>
Wed, 25 Jan 2017 09:32:30 +0000 (09:32 +0000)
commit03bdc3ac6406055cd615cd5cd80b5e10799e8549
tree21f7f3f1a70ce4af687bbee25e918de614bbd3e4
parente0bafdf0596fdc50eb272d49e345bea1425f8ab6
Mark @llvm.powi.* as safe to speculatively execute.

Floating point intrinsics in LLVM are generally not speculatively
executed, since most of them are defined to behave the same as libm
functions, which set errno.

However, the @llvm.powi.* intrinsics do not correspond to any libm
function, and lacks any defined error handling semantics in LangRef.
It most certainly does not alter errno.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293041 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/ValueTracking.cpp
test/Transforms/LICM/hoist-round.ll