This is an archive of the discontinued LLVM Phabricator instance.

[PM] Port LoadStoreVectorizer to the new pass manager.
ClosedPublic

Authored by markus on Nov 23 2018, 2:53 AM.

Diff Detail

Event Timeline

markus created this revision.Nov 23 2018, 2:53 AM
markus added inline comments.Nov 23 2018, 2:59 AM
test/Transforms/LoadStoreVectorizer/X86/correct-order.ll
2

Unclear to my why -aa-pipeline=basic-aa is needed with the new PM (otherwise if not used AAResult contains no AAs and the test fails) while with the legacy PM -basicaa was not needed. Actually not clear to me if the two options are to be considered equivalent.

bjope added a subscriber: bjope.Nov 23 2018, 5:37 AM
nhaehnle removed a subscriber: nhaehnle.Nov 29 2018, 3:53 AM
fedor.sergeev accepted this revision.Nov 30 2018, 5:19 AM

LGTM.

test/Transforms/LoadStoreVectorizer/X86/correct-order.ll
2

BasicAA is always available for function passes in legacy PM (see AAResultsWrapperPass::runOnFunction).
There is no unconditional AA analyses inserted into AA pipeline in new PM.

This revision is now accepted and ready to land.Nov 30 2018, 5:19 AM
markus marked an inline comment as done.Nov 30 2018, 5:37 AM

Thanks for reviewing :)

test/Transforms/LoadStoreVectorizer/X86/correct-order.ll
2

In that case maybe we should have a -aa-pipeline=basic-aa option in all the .ll tests (I see that there are a few missing)? Not that it seems to matter for the tests passing but the pass has proven do depend on it for a few of them so might make sense.

fedor.sergeev added inline comments.Nov 30 2018, 5:40 AM
test/Transforms/LoadStoreVectorizer/X86/correct-order.ll
2

I'm not sure about this.
If we need it all the time then perhaps we should implement a pipeline-by-default, similar to legacy pm?
I'll try to ping @chandlerc on that.

Btw, @markus, you can go push this thing.

This revision was automatically updated to reflect the committed changes.