This is an archive of the discontinued LLVM Phabricator instance.

[CaptureTracking] Support operand bundles conservatively
ClosedPublic

Authored by sanjoy on Nov 3 2015, 2:07 PM.

Details

Summary

Earlier CaptureTracking would assume all "interesting" operands to a
call or invoke were its arguments. With operand bundles this is no
longer true.

Note: an earlier change got doesNotCapture working correctly with
operand bundles.

This change uses DSE to test the changes to CaptureTracking. DSE is a
vehicle for testing only, and is not directly involved in this change.

Diff Detail

Repository
rL LLVM

Event Timeline

sanjoy updated this revision to Diff 39118.Nov 3 2015, 2:07 PM
sanjoy retitled this revision from to [CaptureTracking] Support operand bundles conservatively.
sanjoy updated this object.
sanjoy added reviewers: reames, majnemer.
sanjoy added a subscriber: llvm-commits.
sanjoy updated this revision to Diff 39150.Nov 3 2015, 7:01 PM
  • rebase over changes to dependencies
reames added inline comments.Nov 3 2015, 7:19 PM
lib/Analysis/CaptureTracking.cpp
256 ↗(On Diff #39150)

arg_iterator is somewhat the wrong name for the iterator now.

sanjoy updated this revision to Diff 39162.Nov 3 2015, 8:59 PM
  • rebase over changes to dependencies
sanjoy updated this revision to Diff 39248.Nov 4 2015, 1:13 PM
sanjoy marked an inline comment as done.
  • use data_operand_iterator instead of arg_iterator
reames accepted this revision.Nov 4 2015, 2:38 PM
reames edited edge metadata.

LGTM

This revision is now accepted and ready to land.Nov 4 2015, 2:38 PM
This revision was automatically updated to reflect the committed changes.