[llvm-dev] [RFC] New pass: LoopExitValues

Steve King via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 31 10:16:42 PDT 2015


Hello LLVM,
This is a proposal for a new pass that improves performance and code
size in some nested loop situations.  The pass is target independent.
>From the description in the file header:

This optimization finds loop exit values reevaluated after the loop
execution and replaces them by the corresponding exit values if they
are available. Such sequences can arise after the
SimplifyIndVals+LoopStrengthReduce passes. This pass should be run
after LoopStrengthReduce.

A former colleague created this pass back in LLVM 2.9 and we've been
using it ever since.  I've done some light refactoring and
modernization.

This pass broke 4 existing tests that were sensitive to generated
code.  I've corrected all these, but please give them special
scrutiny.

The patch is available here: http://reviews.llvm.org/D12494

Please advise.

Regards,
-steve


More information about the llvm-dev mailing list