This is an archive of the discontinued LLVM Phabricator instance.

[DSE] Cache liveOnEntry as clobbering access
ClosedPublic

Authored by reames on Mar 2 2022, 12:46 PM.

Details

Summary

This builds on @fhahn's D112313, and caches the liveOnEntry node as a optimized access. D112313 tied to only cache a known clobber. This change adds caching the fact that no clobber exists. It still does not cache may-clobber results.

Diff Detail

Event Timeline

reames created this revision.Mar 2 2022, 12:46 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 2 2022, 12:46 PM
reames requested review of this revision.Mar 2 2022, 12:46 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 2 2022, 12:46 PM
nikic added a reviewer: nikic.Mar 2 2022, 12:54 PM
nikic accepted this revision.Mar 3 2022, 12:38 AM

LGTM, I believe this is correct.

This revision is now accepted and ready to land.Mar 3 2022, 12:38 AM
fhahn accepted this revision.Mar 3 2022, 6:54 AM

LGTM thanks!

IIUC it's not possible to write a test for this easily, because the only use of the optimized access in DSE is eliminateRedundantStoresOfExistingValues, which is not applicable if the optimized accesses is liveOnEntry, right?

reames added a comment.EditedMar 3 2022, 11:20 AM

IIUC it's not possible to write a test for this easily, because the only use of the optimized access in DSE is eliminateRedundantStoresOfExistingValues, which is not applicable if the optimized accesses is liveOnEntry, right?

I came across this as a compile time improvement. (Edit: For clarity, this was split off a compile time improvement idea which didn't work out. This patch seemed useful potentially, even though the broader idea didn't work.) I could maybe test for the memory ssa printer pass after DSE, but that feels too fragile to be worthwhile.

This revision was landed with ongoing or failed builds.Mar 3 2022, 11:40 AM
This revision was automatically updated to reflect the committed changes.