diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-01 23:22:24 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-01 23:22:24 +0000 |
commit | c3a9c1491f5e4ec2fe1faae609bd2287e4fce011 (patch) | |
tree | acaf47bae1cbf1fc574dc450a9f1449a4afad567 /gcc/expr.h | |
parent | 28f8e42636537138c49e4406da911b2bb3d1846e (diff) | |
download | gcc-c3a9c1491f5e4ec2fe1faae609bd2287e4fce011.tar.gz |
* alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
Loop through NOPs, placeholders, and components.
Don't go through NOPs if change mode.
(record_alias_subset): Do nothing if SUBSET and SET are the same.
* emit-rtl.c (set_mem_alias_set): Enable check.
* expr.c (find_placeholder): New function.
(expand_expr, case PLACEHOLDER_EXPR): Use it.
(expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
to modify it and avoid unneeded copies.
* expr.h (expand_expr): Always define.
(find_placeholder): New declaration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45931 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/expr.h b/gcc/expr.h index 9addf7f7326..62e90b0d211 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -498,13 +498,19 @@ extern rtx store_expr PARAMS ((tree, rtx, int)); Useful after calling expand_expr with 1 as sum_ok. */ extern rtx force_operand PARAMS ((rtx, rtx)); -#ifdef TREE_CODE +/* Return an object on the placeholder list that matches EXP, a + PLACEHOLDER_EXPR. An object "matches" if it is of the type of the + PLACEHOLDER_EXPR or a pointer type to it. For further information, + see tree.def. If no such object is found, abort. If PLIST is nonzero, + it is a location into which a pointer into the placeholder list at + which the object is found is placed. */ +extern tree find_placeholder PARAMS ((tree, tree *)); + /* Generate code for computing expression EXP. An rtx for the computed value is returned. The value is never null. In the case of a void EXP, const0_rtx is returned. */ extern rtx expand_expr PARAMS ((tree, rtx, enum machine_mode, enum expand_modifier)); -#endif /* At the start of a function, record that we have no previously-pushed arguments waiting to be popped. */ |