* expr.h (struct separate_ops, sepops): New type for passing
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Aug 2009 13:33:54 +0000 (13:33 +0000)
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Aug 2009 13:33:54 +0000 (13:33 +0000)
commit2c02962cf935ac329a5069f6721839c3c1a3d331
tree21065dda4814644807909923e74947363f96ca60
parent588e1cc345332f6d464f2de3aa43692535094ab5
    * 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151079 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/expr.c
gcc/expr.h
gcc/optabs.c
gcc/optabs.h
gcc/tree-vect-stmts.c