Hi Richard,
On 19/08/16 18:00, Richard Biener wrote:
On Fri, 19 Aug 2016, Kugan Vivekanandarajah wrote:
On 19 August 2016 at 12:09, Kugan Vivekanandarajah
<kugan.vivekanandara...@linaro.org> wrote:
The testcase pr33738.C for warning fails with early-vrp patch. The
reason is, with early-vrp ccp2 is folding the comparison that used to
be folded in simplify_stmt_for_jump_threading. Since early-vrp does
not perform jump-threading is not optimized there.
Attached patch adds this warning to tree-ssa-ccp.c. We might also run
into some other similar issues in the future.
Sorry, I attached the wrong patch (with typo). Here is the correct one.
I think emitting this warning from GIMPLE optimizations is fundamentally
flawed and the warning should be removed there and put next to
the cases we alrady handle in c/c-common.c:shorten_compare (or in
FE specific code). I see no reason why only VRP or CCP would
do the simplification for -fstrict-enums enums (thus it seems to be
missing from the generic comparison folders).
But, If I understand this correctly, I think we will not be able to fold
all the cases we handle in FE. Therefore we will not be able to warn
there. For very simple cases yes, but not for others.
Thanks,
Kugan
Richard.
Thanks,
Kugan
Bootstrapped and regression tested on x86_64-linux-gnu with no new regressions.
Is this OK for trunk?
Thanks,
Kugan
gcc/ChangeLog:
2016-08-18 Kugan Vivekanandarajah <kug...@linaro.org>
* tree-ssa-ccp.c (ccp_fold_stmt): If the comparison is being folded
and the operand on the LHS is being compared against a constant
value that is outside of type limit, issue warning.
k