HomePhabricator

This patch adds a ssa_copy intrinsic, as part of splitting up D29316.

Description

This patch adds a ssa_copy intrinsic, as part of splitting up D29316.

Summary:
The intrinsic, marked as returning it's first argument, has no code
generation effect (though currently not every optimization pass knows
that intrinsics with the returned attribute can be looked through).

It is about to be used to by the PredicateInfo pass to attach
predicate information to existing operands, and be able to tell what
the predicate information affects.

We deliberately do not attach any info through a second operand so
that the intrinsics do not need to dominate the comparisons/etc (since
in the case of assume, we may want to push them up the post-dominator
tree).

Reviewers: davide, sanjoy

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D29517

Details

Committed
dannybFeb 7 2017, 11:29 AM
Differential Revision
D29517: This patch adds a predicateinfo intrinsic, as part of splitting up D29316.
Parents
rL294340: Synchronize PlatformFreeBSD with Linux
Branches
Unknown
Tags
Unknown

Event Timeline

asb added subscribers: dberlin, asb.EditedFeb 11 2017, 10:00 AM

@dberlin, @davide: Perhaps this is my confusion rather than anything else, but should it read "The `llvm.ssa_copy` intrinsic can be used to attach information to operands" rather than to operations?

asb added a subscriber: davide.Feb 11 2017, 10:01 AM
In null, @asb wrote:

@dberlin, @davide: Perhaps this is my confusion rather than anything else, but should it read "The `llvm.ssa_copy` intrinsic can be used to attach information to operands" rather than to operations?

Either is true, i'm fine with "operand" if we want that.

It's attaching it to the operation, which is also an operand of the ssa copy, so ...