[PATCH] D29517: This patch adds a predicateinfo intrinsic, as part of splitting up D29316.

Daniel Berlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 5 11:28:20 PST 2017

dberlin updated this revision to Diff 87159.
dberlin added a comment.

- Update for review comments



Index: include/llvm/IR/Intrinsics.td
--- include/llvm/IR/Intrinsics.td
+++ include/llvm/IR/Intrinsics.td
@@ -781,6 +781,10 @@
                                  [IntrArgMemOnly, NoCapture<0>, NoCapture<1>,
                                   WriteOnly<0>, ReadOnly<1>]>;
+//===----- Intrinsics that are used to provide predicate information -----===//
+def int_ssa_copy : Intrinsic<[llvm_any_ty], [LLVMMatchType<0>],
+			     [IntrNoMem, Returned<0>]>;
 // Target-specific intrinsics
Index: docs/LangRef.rst
--- docs/LangRef.rst
+++ docs/LangRef.rst
@@ -12684,6 +12684,33 @@
 that the optimizer can otherwise deduce or facts that are of little use to the
+.. _int_ssa_copy:
+'``llvm.ssa_copy``' Intrinsic
+      declare type @llvm.ssa_copy(type %operand) returned(1) readnone
+The first argument is an operand which is used as the returned value.
+The ``llvm.ssa_copy`` intrinsic can be used to attach information to
+operations by copying them and giving them new names.  For example,
+the PredicateInfo utility uses it to build Extended SSA form, and
+attach various forms of information to operands that dominate specific
+uses.  It is not meant for general use, only for building temporary
+renaming forms that require value splits at certain points.
 .. _type.test:
 '``llvm.type.test``' Intrinsic

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29517.87159.patch
Type: text/x-patch
Size: 1745 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170205/8e180edb/attachment.bin>

More information about the llvm-commits mailing list