This is an archive of the discontinued LLVM Phabricator instance.

[MachineOutliner] Add always and never options to -enable-machine-outliner
ClosedPublic

Authored by paquette on Jun 27 2018, 4:29 PM.

Details

Summary

To enable the MachineOutliner by default on AArch64, we need to be able to disable the MachineOutliner and also provide an option to "always" enable the outliner.

This adds that capability. It allows the user to still use the old -enable-machine-outliner option, which defaults to "always". This is building up to allowing the user to specify "always" versus the target default outlining behaviour.

Diff Detail

Event Timeline

paquette created this revision.Jun 27 2018, 4:29 PM
javed.absar added inline comments.Jun 28 2018, 1:09 AM
lib/CodeGen/TargetPassConfig.cpp
121

"linkonceodr" - is it a typo? not sure how to read this

paquette added inline comments.Jun 28 2018, 8:56 AM
lib/CodeGen/TargetPassConfig.cpp
121

The intention was to say "I would also like to outline from functions with linkonceodr linkage", which the outliner doesn't do by default. I'm open to changing this if it's confusing though. Any thoughts?

paquette added inline comments.Jun 28 2018, 10:17 AM
lib/CodeGen/TargetPassConfig.cpp
121

Actually, I see why this is confusing. I'll just remove the note since it's kind of misleading.

paquette updated this revision to Diff 153358.Jun 28 2018, 11:04 AM

Removed the reference to enable-linkonceodr-outlining, since it was confusing.

paquette marked 3 inline comments as done.Jun 28 2018, 11:04 AM
javed.absar accepted this revision.Jun 29 2018, 1:13 AM

Thanks. LGTM.

This revision is now accepted and ready to land.Jun 29 2018, 1:13 AM
paquette closed this revision.Jun 29 2018, 9:18 AM

Thanks!

Committed in r335986.
https://reviews.llvm.org/rL335986