summaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-01 23:22:24 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-01 23:22:24 +0000
commitc3a9c1491f5e4ec2fe1faae609bd2287e4fce011 (patch)
treeacaf47bae1cbf1fc574dc450a9f1449a4afad567 /gcc/expr.h
parent28f8e42636537138c49e4406da911b2bb3d1846e (diff)
downloadgcc-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.h10
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. */