This is an archive of the discontinued LLVM Phabricator instance.

[IPSCCP] Move callsite check to the beginning of the loop.
ClosedPublic

Authored by fhahn on Jul 30 2019, 5:07 AM.

Details

Summary

We have some code marks instructions with struct operands as overdefined,
but if the instruction is a call to a function with tracked arguments,
this breaks the assumption that the lattice values of all call sites
are not overdefined and will be replaced by a constant.

This also re-adds the assertion from D65222, with additionally skipping
non-callsite uses. This patch should address the cases reported in which
the assertion fired.

Fixes PR42738.

Diff Detail

Repository
rL LLVM

Event Timeline

fhahn created this revision.Jul 30 2019, 5:07 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 30 2019, 5:07 AM
Herald added a subscriber: hiraditya. · View Herald Transcript
This revision is now accepted and ready to land.Jul 30 2019, 12:41 PM
This revision was automatically updated to reflect the committed changes.