[llvm-dev] An alternative way to resolve complex LSR solutions (need perf testing)

Evgeny Stupachenko via llvm-dev
2017-02-21T07:48:09Z

Hi All,

I've committed an alternative way to resolve complex (>UINT16
variants) LSR solutions under an option "-lsr-exp-narrow" (which is
temporary set to true by default): https://reviews.llvm.org/D29862,
r295704
I'll turn the option to false when get your feedback.
The method is based on registers number mathematical expectation and
should be generally closer to optimal solution.
However, there could be corner cases, so please let me know if there
are gains/regression on your benchmarks.
The biggest performance changes are on x86 32 bits (as there are not
to much registers). On my benchmarks set there are more gains.

Compile time changes are also important (however I don't expect much
changes as complex solutions are not that frequent in hot loops).

Thanks in advance,
Evgeny