Hello, This is a followup of http://gcc.gnu.org/ml/gcc/2014-01/msg00120.html and http://gcc.gnu.org/ml/gcc/2014-01/msg00055.html
This is a slightly long patch that attempts to simplify the niter and infinite expressions by recursively looking through the dominant basic blocks for register definitions, replacing them in the original expressions and simplifying the expression with simplify-rtx. It allows GCC to generate a lot more zero overhead loops by finding much better bounds to loops or discovering that infinite loops are actually not so. I would like to have some comments on the patch and its possible integration into upstream (I guess it can only go upstream once 4.9 is released, right?). I bootstrapped and tested x86_64-unknown-linux-gnu with no regressions. Thanks, Paulo Matos
simplify-using-context.patch
Description: simplify-using-context.patch