From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 96558 invoked by alias); 22 Nov 2017 08:09:57 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 96238 invoked by uid 89); 22 Nov 2017 08:09:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,KB_WAM_FROM_NAME_SINGLEWORD,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=HX-Received:Wed, 1173, tree-vrp.c, UD:tree-vrp.c X-HELO: mail-ua0-f173.google.com Received: from mail-ua0-f173.google.com (HELO mail-ua0-f173.google.com) (209.85.217.173) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 22 Nov 2017 08:09:28 +0000 Received: by mail-ua0-f173.google.com with SMTP id p33so10052312uag.9 for ; Wed, 22 Nov 2017 00:09:28 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=oKsefdjFMLSDkNZz8KCeHhTzDifvT6EXgfkugFSHUiw=; b=TmuX9k0TYrqk/bHi3cbuet+WfpME+ap/4KUaexz8M5oq+rrlVKjmzXAMm2NHNlhhQG ZECgnWEZe8V9Xfb8Z0SEbkwCqx/1leOVbMfeTfrR5egkGBTPaQ730z6z7t5+C39QpObI u4mMzoJgP68dPmXGkXIiT8NQIrEIm2QHwiIc9OEilgg9SIV4+dpcS0qOS8SCm21qH9Rj x8obV5zTR5Wv2cDzPlvnbRLQOrfAgoJ0UsBDBvAYWl2NpunDB+AcP70gAafZ7u5EtIYL fd31lq+kAEXcKt0FHvFK5DRRuGdToVg3JP6YN6c1SGceLAH4C86NsKwGbqnJJTLNxKSc b/eA== X-Gm-Message-State: AJaThX47ti/29uRIHzxkFrWfz+1pWLq5u6+w9YQX63a/NPKaDi/AS2oB du3tHH8NDtHXkZVD56/uYHwHNsoNuqlxewUSiQpriA== X-Google-Smtp-Source: AGs4zMZ5yyhyH+SLvqJPg6doTBkbmWuvyjsO4wphbqF0eLe+W+RQK0YD3C70mXtHZaUTDS5dQSfONop1ryw0DMthqss= X-Received: by 10.176.78.17 with SMTP id g17mr16602953uah.169.1511338166587; Wed, 22 Nov 2017 00:09:26 -0800 (PST) MIME-Version: 1.0 Received: by 10.103.120.208 with HTTP; Wed, 22 Nov 2017 00:09:25 -0800 (PST) In-Reply-To: References: From: Christophe Lyon Date: Wed, 22 Nov 2017 08:25:00 -0000 Message-ID: Subject: Re: [RFTesting] New POINTER_DIFF_EXPR To: Marc Glisse Cc: Jason Merrill , Richard Biener , "Joseph S. Myers" , GCC Patches Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg01966.txt.bz2 Hi Marc, On 20 November 2017 at 00:54, 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 > > 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 (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. > Since you committed this patch (r255021), my cross-builds of GCC for aarch64-linux-gnu fail while building glibc: /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/tools/bin/aarch64-none-linux-gnu-gcc fetch-value.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wundef -Wwrite-string s -fmerge-all-constants -frounding-math -g -Wstrict-prototypes -fPIC -I../include -I/tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-aarch64-none-linux-gnu/gl ibc-1/nptl_db -I/tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-aarch64-none-linux-gnu/glibc-1 -I../sysdeps/unix/sysv/linux/aarch64/nptl -I../sysdeps/unix/sysv/lin ux/aarch64 -I../sysdeps/unix/sysv/linux/generic -I../sysdeps/unix/sysv/linux/wordsize-64 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I ../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps /posix -I../sysdeps/aarch64/fpu -I../sysdeps/aarch64/nptl -I../sysdeps/aarch64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-128 -I../sysdeps/ieee754/dbl-64/wordsize-6 4 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/aarch64/soft-fp -I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl -I.. -I../libio -I. -nostdinc -i system /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/tools/lib/gcc/aarch64-none-linux-gnu/8.0.0/include -isystem /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc /tools/lib/gcc/aarch64-none-linux-gnu/8.0.0/include-fixed -isystem /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/sysroot-aarch64-none-linux-gnu/usr/include -D_LIBC_REE NTRANT -include ../include/libc-symbols.h -DPIC -DSHARED -DNOT_IN_libc=1 -DIS_IN_libthread_db=1 -DIN_LIB=libthread_db -o /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccs rc/obj-aarch64-none-linux-gnu/glibc-1/nptl_db/fetch-value.os -MD -MP -MF /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-aarch64-none-linux-gnu/glibc-1/nptl_db/fetch- value.os.dt -MT /tmp/6857183_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-aarch64-none-linux-gnu/glibc-1/nptl_db/fetch-value.os during GIMPLE pass: vrp fetch-value.c: In function '_td_locate_field': fetch-value.c:44:1: internal compiler error: Segmentation fault _td_locate_field (td_thragent_t *ta, ^~~~~~~~~~~~~~~~ 0xb87c75 crash_signal /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/toplev.c:325 0x5b1934 contains_struct_check /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/tree.h:3459 0x5b1934 wi::to_wide(tree_node const*) /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/tree.h:5247 0xf05557 vr_values::two_valued_val_range_p(tree_node*, tree_node**, tree_node**) /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/vr-values.c:4051 0xf0ee48 vr_values::simplify_stmt_using_ranges(gimple_stmt_iterator*) /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/vr-values.c:4115 0xd7068f substitute_and_fold_dom_walker::before_dom_children(basic_block_def*) /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/tree-ssa-propagate.c:1073 0x1204860 dom_walker::walk(basic_block_def*) /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/domwalk.c:308 0xd6e805 substitute_and_fold_engine::substitute_and_fold() /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/tree-ssa-propagate.c:1173 0xe71b0b vrp_prop::vrp_finalize(bool) /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/tree-vrp.c:6788 0xe81667 execute_vrp /tmp/6857183_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/tree-vrp.c:6864 Please submit a full bug report, No such problem on arm targets. Can you have a look? Thanks, Christophe > -- > Marc Glisse