This is an archive of the discontinued LLVM Phabricator instance.

[Attributor] Use AAFromMustBeExecutedContext::initialize not ::updateImpl
AbandonedPublic

Authored by jdoerfert on Apr 16 2020, 12:58 AM.

Details

Summary

We inspected the must-be-executed-context in the updateImpl of
AAFromMustBeExecutedContext, thus every update once. Now we do it once
during the initialize call. This is fine as all users only look at known
information (and the context is build using known information only).
Once we have a user that utilizes assumed information we need to
introduce a mechanism to select when the context is traversed.

The test changes are basically artifacts but all positive. In the CGSCC
pass we currently do not allow to look at the caller/callee outside the
SCC, even if we could. Instead, we indicate a pessimistic fixpoint which
prevented the context exploration in AAFromMustBeExecutedContext to
happen at all. Since it is part of the initialize now we derive
information from the context even if we give up on the deduction later
on.

Diff Detail

Event Timeline

jdoerfert created this revision.Apr 16 2020, 12:58 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 16 2020, 12:58 AM
jdoerfert abandoned this revision.Apr 20 2020, 10:34 PM

This is not the right fix