Commit 68a1a5da by Eric Botcazou

fold-const.c (fold): Strip NOPs that change the signedness for RSHIFT too.

	* fold-const.c (fold): Strip NOPs that change the signedness
	for RSHIFT too.  Expand comment.

From-SVN: r78603
parent a10016d3
2004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
* fold-const.c (fold): Strip NOPs that change the signedness
for RSHIFT too. Expand comment.
2004-02-27 Ian Lance Taylor <ian@wasabisystems.com> 2004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
PR optimization/7871 PR optimization/7871
* flow.c (mark_set_1): Don't add LOG_LINKS for global registers * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
from or to call insns. from or to call insns.
2004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr> 2004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
......
...@@ -5423,14 +5423,20 @@ fold (tree expr) ...@@ -5423,14 +5423,20 @@ fold (tree expr)
if (op == 0) if (op == 0)
continue; /* Valid for CALL_EXPR, at least. */ continue; /* Valid for CALL_EXPR, at least. */
if (kind == '<' || code == RSHIFT_EXPR) /* Strip any conversions that don't change the mode. This is
{ safe for every expression, except for a comparison expression
/* Signedness matters here. Perhaps we can refine this because its signedness is derived from its operands. So, in
later. */ the latter case, only strip conversions that don't change the
STRIP_SIGN_NOPS (op); signedness.
}
Note that this is done as an internal manipulation within the
constant folder, in order to find the simplest representation
of the arguments so that their form can be studied. In any
cases, the appropriate type conversions should be put back in
the tree that will get out of the constant folder. */
if (kind == '<')
STRIP_SIGN_NOPS (op);
else else
/* Strip any conversions that don't change the mode. */
STRIP_NOPS (op); STRIP_NOPS (op);
if (TREE_CODE (op) == COMPLEX_CST) if (TREE_CODE (op) == COMPLEX_CST)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment