This speeds up the dependency calculations for blocks with many load/store/call instructions.
Beside the improved runtime, there is no functional change.
Details
- Reviewers
aschwaighofer
Diff Detail
Event Timeline
LGTM.
I think the discussion about how and whether we should use a caching mechanism in AliasAnalysis should be separate. Some clients already have their own caching strategy (MemoryDependence has its own, for example) and might not want/need the overhead of a caching implementation ...
lib/Transforms/Vectorize/SLPVectorizer.cpp | ||
---|---|---|
928 | s/descructed/destructed/ |
Thanks for reverting and sending this out.
My only comment beyond Arnold's (as he knows this code much better than I do) is that it would be good to document this invariant of BoUpSLP somewhere other than a member comment. Not sure what the best place is.
Committed in rL225977 with a few changes/corrections:
- added a missing dropAllReferences() before pushing an instruction to DeletedInstructions
- extract the removeFromParent/dropAllReferences/push-to-DeletedInstructions to a new function in BoUpSLP
My only comment beyond Arnold's (as he knows this code much better than I do) is that it would be good to document this invariant of BoUpSLP somewhere other than a member comment. Not sure what the best place is.
- added a note in SLPVectorizer::runOnFunction
Thanks for reviewing!
s/descructed/destructed/