aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/ErrorHandling.cpp
diff options
context:
space:
mode:
authorSimon Moll <simon.moll@emea.nec.com>2022-05-30 12:19:48 +0200
committerSimon Moll <moll@cs.uni-saarland.de>2022-05-30 12:20:05 +0200
commit78a18d2b54e7e8e0e2c1d1cb33d015d7f69b8cc7 (patch)
treed68a9fa1d1664b7d469b52d66e63c44ad0a3ee79 /llvm/lib/Support/ErrorHandling.cpp
parent180d3f251d1ad5473705d3f00e6d426b5f8162e6 (diff)
downloadllvm-78a18d2b54e7e8e0e2c1d1cb33d015d7f69b8cc7.zip
llvm-78a18d2b54e7e8e0e2c1d1cb33d015d7f69b8cc7.tar.gz
llvm-78a18d2b54e7e8e0e2c1d1cb33d015d7f69b8cc7.tar.bz2
[VP] vp intrinsics are not speculatable
VP intrinsics show UB if the %evl parameter is out of bounds - they must not carry the speculatable attribute. The out-of-bounds UB disappears when the %evl parameter is expanded into the mask or expansion replaces the entire VP intrinsic with non-VP code. This patch - Removes the speculatable attribute on all VP intrinsics. - Generalizes the isSafeToSpeculativelyExecute function to let VP expansion know whether the VP intrinsic replacement will be speculatable. VP expansion may only discard %evl where this is the case. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D125296
Diffstat (limited to 'llvm/lib/Support/ErrorHandling.cpp')
0 files changed, 0 insertions, 0 deletions