HomePhabricator

[NFC] Add detector for guards expressed as branch by widenable conditions

Authored by mkazantsev on Jan 22 2019, 1:36 AM.

Description

[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

Details

Committed
mkazantsevJan 22 2019, 1:36 AM
Reviewer
reames
Differential Revision
D56074: [NFC] Add detector function for explicitly expressed guards
Parents
rGb88d6fd7b8c0: [LLD][ELF]Fix tests for D56910
Branches
Unknown
Tags
Unknown