This is an archive of the discontinued LLVM Phabricator instance.

[Attributor][FIX] Traverse uses even if a value is assumed constant
ClosedPublic

Authored by jdoerfert on Jun 7 2021, 4:56 PM.

Details

Summary

Not all attributes are able to handle the interprocedural step and
follow the uses into a call site. Let them be able to combine call site
uses instead. This might result in some unused values/arguments being
leftover but it removes problems where we misused "is dead" even though
it was actually "is simplified/replaced".

We explicitly check for dead values due to constant propagation in
AAIsDeadValueImpl::areAllUsesAssumedDead instead.

Diff Detail

Event Timeline

jdoerfert created this revision.Jun 7 2021, 4:56 PM
jdoerfert requested review of this revision.Jun 7 2021, 4:56 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 7 2021, 4:56 PM
Herald added a subscriber: bbn. · View Herald Transcript
ormris removed a subscriber: ormris.Jun 11 2021, 2:57 PM
jdoerfert updated this revision to Diff 353803.Jun 22 2021, 2:58 PM

Rebase and update tests

kuter accepted this revision.Jul 7 2021, 11:17 AM

LGTM

This revision is now accepted and ready to land.Jul 7 2021, 11:17 AM
This revision was landed with ongoing or failed builds.Jul 10 2021, 10:33 AM
This revision was automatically updated to reflect the committed changes.