fold-const.c (fold): Even with otherwise constant trees...
* fold-const.c (fold): Even with otherwise constant trees, look for opportunities to combine integer constants. From-SVN: r20392
This commit is contained in:
parent
1c5d60f501
commit
ac1fdb22b8
@ -1,3 +1,8 @@
|
||||
Tue Jun 9 22:05:34 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* fold-const.c (fold): Even with otherwise constant trees, look for
|
||||
opportunities to combine integer constants.
|
||||
|
||||
Wed Jun 3 23:41:24 EDT 1998 John Wehle (john@feith.com)
|
||||
|
||||
* i386.md (movsfcc, movdfcc, movxfcc): The floating point
|
||||
|
@ -4433,9 +4433,12 @@ fold (expr)
|
||||
return convert (TREE_TYPE (t), con);
|
||||
|
||||
/* If ARG0 is a constant, don't change things around;
|
||||
instead keep all the constant computations together. */
|
||||
instead keep all the constant computations together.
|
||||
Notice, however, if we can merge integer constants. */
|
||||
|
||||
if (TREE_CONSTANT (arg0))
|
||||
if (TREE_CONSTANT (arg0)
|
||||
&& !(TREE_CODE (con) == INTEGER_CST
|
||||
&& TREE_CODE (arg1) == INTEGER_CST))
|
||||
return t;
|
||||
|
||||
/* Otherwise return (CON +- ARG1) - VAR. */
|
||||
@ -4450,9 +4453,12 @@ fold (expr)
|
||||
return convert (TREE_TYPE (t), con);
|
||||
|
||||
/* If ARG0 is a constant, don't change things around;
|
||||
instead keep all the constant computations together. */
|
||||
instead keep all the constant computations together.
|
||||
Notice, however, if we can merge integer constants. */
|
||||
|
||||
if (TREE_CONSTANT (arg0))
|
||||
if (TREE_CONSTANT (arg0)
|
||||
&& !(TREE_CODE (con) == INTEGER_CST
|
||||
&& TREE_CODE (arg1) == INTEGER_CST))
|
||||
return t;
|
||||
|
||||
/* Otherwise return VAR +- (ARG1 +- CON). */
|
||||
@ -4481,7 +4487,13 @@ fold (expr)
|
||||
|
||||
if (split_tree (arg1, code, &var, &con, &varsign))
|
||||
{
|
||||
if (TREE_CONSTANT (arg1))
|
||||
/* If ARG1 is a constant, don't change things around;
|
||||
instead keep all the constant computations together.
|
||||
Notice, however, if we can merge integer constants. */
|
||||
|
||||
if (TREE_CONSTANT (arg1)
|
||||
&& !(TREE_CODE (con) == INTEGER_CST
|
||||
&& TREE_CODE (arg0) == INTEGER_CST))
|
||||
return t;
|
||||
|
||||
if (varsign == -1)
|
||||
|
Loading…
Reference in New Issue
Block a user