diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2019-01-22 09:36:22 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2019-01-22 09:36:22 +0000 |
commit | bd374b27cc33567b0a0522ee511fc1ea9f0bb1df (patch) | |
tree | 90c1c6cf66a8be88b3e27b9b9d6d64f87372853f /llvm/lib/Bitcode | |
parent | b88d6fd7b8c0f40a919e463b9b8c9193efbc5eaa (diff) | |
download | llvm-bd374b27cc33567b0a0522ee511fc1ea9f0bb1df.zip llvm-bd374b27cc33567b0a0522ee511fc1ea9f0bb1df.tar.gz llvm-bd374b27cc33567b0a0522ee511fc1ea9f0bb1df.tar.bz2 |
[NFC] Add detector for guards expressed as branch by widenable conditions
This patch adds a function to detect guards expressed in explicit control
flow form as branch by `and` with widenable condition intrinsic call:
%wc = call i1 @llvm.experimental.widenable.condition()
%guard_cond = and i1, %some_cond, %wc
br i1 %guard_cond, label %guarded, label %deopt
deopt:
<maybe some non-side-effecting instructions>
deoptimize()
This form can be used as alternative to implicit control flow guard
representation expressed by `experimental_guard` intrinsic.
Differential Revision: https://reviews.llvm.org/D56074
Reviewed By: reames
llvm-svn: 351791
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions