HomePhabricator

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

Authored by jdoerfert on May 7 2021, 9:06 PM.

Description

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

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.

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