This is an archive of the discontinued LLVM Phabricator instance.

[LoopDataPrefetch][AArch64FalkorHWPFFix] Preserve ScalarEvolution
ClosedPublic

Authored by gberry on Aug 14 2017, 2:55 PM.

Details

Summary

Mark LoopDataPrefetch and AArch64FalkorHWPFFix passes as preserving
ScalarEvolution since they do not alter loop structure and should not
alter any SCEV values (though LoopDataPrefetch may introduce new
instructions that won't have cached SCEV values yet).

This can result in slight code differences, mainly w.r.t. nsw/nuw flags
on SCEVs, since these are computed somewhat lazily when a zext/sext
instruction is encountered. As a result, passes after the modified
passes may see SCEVs with more nsw/nuw flags present.

Event Timeline

gberry created this revision.Aug 14 2017, 2:55 PM
anemet accepted this revision.Aug 14 2017, 3:56 PM

LGTM. Please watch out for any failures.

This revision is now accepted and ready to land.Aug 14 2017, 3:56 PM
This revision was automatically updated to reflect the committed changes.