[LICM] Reassociate & hoist sub expressions
LICM could reassociate mixed variant/invariant comparison/arithmetic operations and hoist invariant parts out of loop if it can prove that they can be computed without overflow. Motivating example here: ``` INV1 - VAR1 < INV2 ``` can be turned into ``` VAR > INV1 - INV2 ``` if we can prove no-signed-overflow here. Then `INV1 - INV2` can be computed out of loop, so we save one arithmetic operation in-loop. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D148001
Loading
Please sign in to comment