Reland "Load pass plugins during option processing, so that plugin options are registered and live."Fix Polly failures.Reviewed By: mehdi_amini, MeinersburDifferential Revision: https://reviews
Reland "Load pass plugins during option processing, so that plugin options are registered and live."Fix Polly failures.Reviewed By: mehdi_amini, MeinersburDifferential Revision: https://reviews.llvm.org/D121566
show more ...
[Polly] Port PruneUnprofitable to the NewPM.
[ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default.Splitting basic blocks into multiple statements if there are nowadditional scalar dependencies gives more freedom to the schedul
[ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default.Splitting basic blocks into multiple statements if there are nowadditional scalar dependencies gives more freedom to the scheduler, butmore statements also means higher compile-time complexity. Switch tofiner statement granularity, the additional compile time should belimited by the number of operations quota.The regression tests are written for the -polly-stmt-granularity=bbsetting, therefore we add that flag to those tests that break with thenew default. Some of the tests only fail because the statements arenamed differently due to a basic block resulting in multiple statements,but which are removed during simplification of statements withoutside-effects. Previous commits tried to reduce this effect, but it isnot completely avoidable.Differential Revision: https://reviews.llvm.org/D42151llvm-svn: 324169
[PruneUnprofitable] Add -polly-prune-unprofitable pass.ScopInfo's normal profitability heuristic considers SCoPs where allstatements have scalar writes as not profitably optimizable andinvalidate
[PruneUnprofitable] Add -polly-prune-unprofitable pass.ScopInfo's normal profitability heuristic considers SCoPs where allstatements have scalar writes as not profitably optimizable andinvalidate the SCoP in that case. However, -polly-delicm and-polly-simplify may be able to remove some of the scalar writes suchthat the flag -polly-unprofitable-scalar-accs=false allows disablingthat part of the heuristic.In cases where DeLICM (or other passes after ScopInfo) are notsuccessful in removing scalar writes, the SCoP is still not profitablyoptimizable. The schedule optimizer would again try computing anotherschedule, resulting in slower compilation.The -polly-prune-unprofitable pass applies the profitability heuristicagain before the schedule optimizer Polly can still bail out even with-polly-unprofitable-scalar-accs=false.Differential Revision: https://reviews.llvm.org/D31033llvm-svn: 298080