This is an archive of the discontinued LLVM Phabricator instance.

[PR29121] Don't fold if it would produce atomic vector loads or stores
ClosedPublic

Authored by reames on Sep 8 2016, 2:57 PM.

Details

Summary

The instcombine code which folds loads and stores into their use types can trip up if the use is a bitcast to a type which we can't directly load or store in the IR. In principle, such types shouldn't exist, but in practice they do today. This is a workaround to avoid a bug while we work towards the long term goal.

Diff Detail

Repository
rL LLVM

Event Timeline

reames updated this revision to Diff 70755.Sep 8 2016, 2:57 PM
reames retitled this revision from to [PR29121] Don't fold if it would produce atomic vector loads or stores.
reames updated this object.
reames added reviewers: jfb, chandlerc, sanjoy, steven_wu.
reames added a subscriber: llvm-commits.
steven_wu edited edge metadata.Sep 8 2016, 9:15 PM

Thanks for cleaning up my proposed fix and creating the review. I think this is the correct fix in short term before we can legalize the vector atomic in instruction selection for all backend. LGTM.

Ping. Are there still concerns about this patch?

reames accepted this revision.Sep 27 2016, 4:19 PM
reames added a reviewer: reames.

I'd missed the LGTM as the review wasn't accepted. Will commit in the next day or so.

This revision is now accepted and ready to land.Sep 27 2016, 4:19 PM

Looks like patch was not committed.

This revision was automatically updated to reflect the committed changes.