This is an archive of the discontinued LLVM Phabricator instance.

[EarlyCSE] Fix handling of target memory intrinsics for CSE'ing loads.
ClosedPublic

Authored by aadg on Oct 6 2015, 8:14 AM.

Details

Summary

Some target intrinsics can access multiple elements, using the pointer as a
base address (e.g. AArch64 ld4). When trying to CSE such instructions,
it must be checked the available value comes from a compatible instruction
because the pointer is not enough to discriminate whether the value is
correct.

Diff Detail

Event Timeline

aadg updated this revision to Diff 36626.Oct 6 2015, 8:14 AM
aadg retitled this revision from to [EarlyCSE] Fix handling of target memory intrinsics for CSE'ing loads..
aadg updated this object.
aadg added a reviewer: mcrosier.
aadg added a subscriber: llvm-commits.
mcrosier edited edge metadata.Oct 6 2015, 8:33 AM

Hi Arnaud,
Am I correct in assuming this is a regression caused by r227149, which is a patch I committed on behalf of Sanjin?

Chad

mcrosier edited reviewers, added: ssijaric; removed: mcrosier.Oct 6 2015, 9:11 AM
mcrosier added a subscriber: mcrosier.

I've set Sanjin as a reviewer and pinging him internally. Hopefully, he can take a look shortly. Thanks for the patch, Arnaud.

ssijaric edited edge metadata.Oct 6 2015, 11:05 AM

Hi Arnaud,

Thank you for the fix. This was an oversight on my part - sorry about that.

Once committed, I am going to rework http://reviews.llvm.org/D8313 to take this fix into account.

LGTM.

Thanks,
Sanjin

This revision was automatically updated to reflect the committed changes.