[NewPM] Add an SROA pass after loop unroll
authorGuozhi Wei <carrot@google.com>
Fri, 1 Nov 2019 21:59:08 +0000 (14:59 -0700)
committerGuozhi Wei <carrot@google.com>
Fri, 1 Nov 2019 21:59:08 +0000 (14:59 -0700)
commitcecc0d27ad58c0aed8ef9ed99bbf691e137a0f26
tree34456858eb733680ce3ba8ad2ea8de8e91918c4c
parent89b7f16204afa25325c28edeaa9973853f2e6796
[NewPM] Add an SROA pass after loop unroll

If there is a small local array accessed in a loop, SROA can't handle memory
accesses with variant offset inside a loop, after the loop is fully unrolled,
all memory accesses to the array are with fixed offset, so now they can be
processed by SROA. But there is no more SROA passes after loop unroll. This
patch add an SROA pass after loop unroll to handle this pattern.

Differential Revision: https://reviews.llvm.org/D68593
llvm/lib/Passes/PassBuilder.cpp
llvm/test/Other/new-pm-defaults.ll
llvm/test/Other/new-pm-thinlto-defaults.ll
llvm/test/Other/unroll-sroa.ll [new file with mode: 0644]