diff options
author | Michael Matz <matz@suse.de> | 2009-08-25 13:33:54 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2009-08-25 13:33:54 +0000 |
commit | 8e7aa1f9a319b100c721a7d83294a799a295407c (patch) | |
tree | 21065dda4814644807909923e74947363f96ca60 /gcc/expr.h | |
parent | b32e7cdb5df3f84bfdc0dc683f7c94adf76043cf (diff) | |
download | gcc-8e7aa1f9a319b100c721a7d83294a799a295407c.zip gcc-8e7aa1f9a319b100c721a7d83294a799a295407c.tar.gz gcc-8e7aa1f9a319b100c721a7d83294a799a295407c.tar.bz2 |
expr.h (struct separate_ops, sepops): New type for passing around an exploded simple expression.
* expr.h (struct separate_ops, sepops): New type for passing
around an exploded simple expression.
* optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
Use this structure instead of expression tree.
(get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
expression, only its type.
(expand_vec_cond_expr): Take type and individual operands instead
of full expression.
* optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
expand_vec_shift_expr): Change prototype accordingly.
* tree-vect-stmts.c (vectorizable_condition): Change call of
expand_vec_cond_expr_p to pass only type.
* expr.c (do_store_flags): Change prototype and implementation
to take an exploded expression.
(expand_expr_real_1): New local ops initialized with details
of the full expression. Use it instead of full
expression in calls to do_store_flags, expand_vec_cond_expr,
expand_widen_pattern_expr and expand_vec_shift_expr.
From-SVN: r151079
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -267,6 +267,17 @@ do { \ #define STACK_CHECK_MAX_VAR_SIZE (STACK_CHECK_MAX_FRAME_SIZE / 100) #endif +/* This structure is used to pass around information about exploded + unary, binary and trinary expressions between expand_expr_real_1 and + friends. */ +typedef struct separate_ops +{ + enum tree_code code; + tree type; + tree op0, op1, op2; + location_t location; +} *sepops; + /* Functions from optabs.c, commonly used, and without need for the optabs tables: */ |