diff options
author | Richard Henderson <rth@redhat.com> | 2004-06-28 15:26:24 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-06-28 15:26:24 -0700 |
commit | 497be9785fcb4acf36758fd264571611a8d266a6 (patch) | |
tree | a549f060a09c40d71ee82fdca3589a607929d2e1 | |
parent | 4aaf65cb638562d2151c57eab1a0cc112880e665 (diff) | |
download | gcc-497be9785fcb4acf36758fd264571611a8d266a6.zip gcc-497be9785fcb4acf36758fd264571611a8d266a6.tar.gz gcc-497be9785fcb4acf36758fd264571611a8d266a6.tar.bz2 |
tree.def (REALPART_EXPR, [...]): Change class to 'r'.
* tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
* fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
IMAGPART_EXPR.
* tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
IMAGPART_EXPR explicitly.
* tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
and IMAGPART_EXPR specially.
* tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
From-SVN: r83825
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/fold-const.c | 2 | ||||
-rw-r--r-- | gcc/tree-dump.c | 2 | ||||
-rw-r--r-- | gcc/tree-inline.c | 2 | ||||
-rw-r--r-- | gcc/tree.c | 2 | ||||
-rw-r--r-- | gcc/tree.def | 4 |
6 files changed, 19 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e10b2ef..5bdb1de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2004-06-28 Richard Henderson <rth@redhat.com> + + * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'. + * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR, + IMAGPART_EXPR. + * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and + IMAGPART_EXPR explicitly. + * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR + and IMAGPART_EXPR specially. + * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'. + 2004-06-28 J"orn Rennecke <joern.rennecke@superh.com> * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 4bb42a4..66769af 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2479,6 +2479,8 @@ operand_equal_p (tree arg0, tree arg1, unsigned int flags) switch (TREE_CODE (arg0)) { case INDIRECT_REF: + case REALPART_EXPR: + case IMAGPART_EXPR: return operand_equal_p (TREE_OPERAND (arg0, 0), TREE_OPERAND (arg1, 0), flags); diff --git a/gcc/tree-dump.c b/gcc/tree-dump.c index 39aeead..314c29f 100644 --- a/gcc/tree-dump.c +++ b/gcc/tree-dump.c @@ -528,6 +528,8 @@ dequeue_and_dump (dump_info_p di) case INDIRECT_REF: case CLEANUP_POINT_EXPR: case SAVE_EXPR: + case REALPART_EXPR: + case IMAGPART_EXPR: /* These nodes are unary, but do not have code class `1'. */ dump_child ("op 0", TREE_OPERAND (t, 0)); break; diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index ac52562..ed2afee 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -1220,8 +1220,6 @@ estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data) case ADDR_EXPR: case REFERENCE_EXPR: case COMPLEX_EXPR: - case REALPART_EXPR: - case IMAGPART_EXPR: case EXIT_BLOCK_EXPR: case CASE_LABEL_EXPR: case SSA_NAME: @@ -2483,6 +2483,8 @@ build1_stat (enum tree_code code, tree type, tree node MEM_STAT_DECL) TREE_CONSTANT (t) = 1; if (TREE_CODE_CLASS (code) == '1' && node && TREE_INVARIANT (node)) TREE_INVARIANT (t) = 1; + if (TREE_CODE_CLASS (code) == 'r' && node && TREE_THIS_VOLATILE (node)) + TREE_THIS_VOLATILE (t) = 1; break; } diff --git a/gcc/tree.def b/gcc/tree.def index 422817d..d126895 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -776,8 +776,8 @@ DEFTREECODE (CONJ_EXPR, "conj_expr", '1', 1) /* Used only on an operand of complex type, these return a value of the corresponding component type. */ -DEFTREECODE (REALPART_EXPR, "realpart_expr", '1', 1) -DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", '1', 1) +DEFTREECODE (REALPART_EXPR, "realpart_expr", 'r', 1) +DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", 'r', 1) /* Nodes for ++ and -- in C. The second arg is how much to increment or decrement by. |