This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFTesting] New POINTER_DIFF_EXPR


On 11/19/2017 04:54 PM, Marc Glisse wrote:
> Hello,
> 
> new version, regtested on powerpc64le-unknown-linux-gnu. The front-end
> parts are up for review.
> 
> 2017-10-28  Marc Glisse  <marc.glisse@inria.fr>
> 
> gcc/c/
>     * c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR.
>     * c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
> 
> gcc/c-family/
>     * c-pretty-print.c (pp_c_additive_expression,
>     c_pretty_printer::expression): Handle POINTER_DIFF_EXPR.
> 
> gcc/cp/
>     * constexpr.c (cxx_eval_constant_expression,
>     potential_constant_expression_1): Handle POINTER_DIFF_EXPR.
>     * cp-gimplify.c (cp_fold): Likewise.
>     * error.c (dump_expr): Likewise.
>     * typeck.c (pointer_diff): Use POINTER_DIFF_EXPR.
> 
> gcc/
>     * doc/generic.texi: Document POINTER_DIFF_EXPR, update
>     POINTER_PLUS_EXPR.
>     * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
>     * expr.c (expand_expr_real_2): Likewise.
>     * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
>     fold_binary_loc): Likewise.
>     * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
>     P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
>     (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
>     MINUS_EXPR transformations.
>     * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
>     * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
>     * tree-inline.c (estimate_operator_cost): Likewise.
>     * tree-pretty-print.c (dump_generic_node, op_code_prio,
>     op_symbol_code): Likewise.
>     * tree-vect-stmts.c (vectorizable_operation): Likewise.
>     * vr-values.c (extract_range_from_binary_expr): Likewise.
>     * varasm.c (initializer_constant_valid_p_1): Likewise.
>     * tree.def: New tree code POINTER_DIFF_EXPR.
> 
The front-end bits seem very reasonable to me.  If the rest is ACK'd
then you should consider the full patch ack'd.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]