From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 7A0B9386C587 for ; Wed, 7 Sep 2022 12:00:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7A0B9386C587 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-x62a.google.com with SMTP id dv25so537900ejb.12 for ; Wed, 07 Sep 2022 05:00:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=C9kujm9ihF3CDdHyHDV2ZPTglcxR62Xc7IcJd4hoM1c=; b=MWcUbuSUH7yEsFPBKYnwy4Xt7USkAG5QmCBXIr3syo+U66vEV+Tzbbs2y5bFK3WhAp nt8gLZQ2myk6lo9GxzsooFUAZdvX2UVIIi01yTeIfY00F1iPGYLOvtyn4hZI7aSewNFS SMX4CunNWFnb2O9pBKzVKRSi7EQXwAG1rTOWacJrWcLdqxLXn2LBWEggdIkPHI3e7/Au 01EHknS+rZrD7PKJsAQbfnosydUjNVFmlDC5C63wU4J8GUaK5qVcWF5Gk0mmcHS4sQ0a wSjeS76fGlb+szx5fti85IgUiZOWlTs3aPEQ8A3pOs/yonxHVdaUnj0jtFMtGvWDaCD2 OuLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=C9kujm9ihF3CDdHyHDV2ZPTglcxR62Xc7IcJd4hoM1c=; b=Y4KthtKC69129NYAmnE2nBIoJEAlT54rOyXhatpzMT8P8gbi1sd4tTOYUacBoc+HHl qiu1Z6vAHtyPzSk1SbUU43wjCEbiHhjGxT1fT/z6VfMhUB2Ag0b9tBIGRPdGO0mQHHvr vUHbuJCbLUGGkSRL7EmZXx/drpDFW2e3hYgiQBOlzGnpkJvAlKANrVAxo0iEMb5bH+nV xDiVdKZUzCGjoll5jRH57jXfQ/cjLt93/pZZjMkzSoM2E63jTE4z8DCTmHjCXqJdve9Y 4/dGJ3bpUUhtYt6IjGQ4iDQiW7dLCrUQ6pTm/6je34s6EXNG9Dd8+MueA7eq35TuLyuo 7f/g== X-Gm-Message-State: ACgBeo2sFScnwmSBhQOSSQWnJcwZwCv1oNQ+QqfUMBkLLRt3D92xzWFM VxxE9uP2caQxbsXCcHlwWgYNIhIKaSAen3vy/joNYatM X-Google-Smtp-Source: AA6agR68TV6UBgJYNaEKfpXxyzPS0Xg3r3r4v3rp/BIXcBcgMk9xXmDcnHy4BDxJfpkwmz0IQeKfCltPBWg4aHuCf/I= X-Received: by 2002:a17:906:5d16:b0:74c:32ce:208b with SMTP id g22-20020a1709065d1600b0074c32ce208bmr2141099ejt.594.1662552037279; Wed, 07 Sep 2022 05:00:37 -0700 (PDT) MIME-Version: 1.0 References: <20220713165014.36469-1-hjl.tools@gmail.com> <20220907105735.mxlvmgnpfkrvvnc6@lug-owl.de> In-Reply-To: <20220907105735.mxlvmgnpfkrvvnc6@lug-owl.de> From: Richard Biener Date: Wed, 7 Sep 2022 14:00:25 +0200 Message-ID: Subject: Re: [PATCH v3] Simplify memchr with small constant strings To: Jan-Benedict Glaw Cc: "H.J. Lu" , GCC Patches Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Wed, Sep 7, 2022 at 12:58 PM Jan-Benedict Glaw wrote= : > > Hi! > > On Wed, 2022-07-13 09:50:14 -0700, H.J. Lu via Gcc-patches wrote: > > When memchr is applied on a constant string of no more than the bytes o= f > > a word, simplify memchr by checking each byte in the constant string. > > > > int f (int a) > > { > > return __builtin_memchr ("AE", a, 2) !=3D 0; > > } > > > > is simplified to > > > > int f (int a) > > { > > return ((char) a =3D=3D 'A' || (char) a =3D=3D 'E') !=3D 0; > > } > > Seems this caused a regression for --target=3Davr-elf, pru-elf and > rl78-elf: > > .../gcc/configure --prefix=3D... --enable-werror-always --enable-language= s=3Dall --disable-gcov --disable-shared --disable-threads --target=3Dpru-el= f --without-headers > [...] > make V=3D1 all-gcc > [...] > /usr/lib/gcc-snapshot/bin/g++ -fno-PIE -c -g -O2 -DIN_GCC -DCROSS_D= IRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables= -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attri= bute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wn= o-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I../../g= cc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/../include -I../../gcc/gcc/../libc= pp/include -I../../gcc/gcc/../libcody -I../../gcc/gcc/../libdecnumber -I..= /../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../gcc/gcc/../libbac= ktrace -o tree-ssa-forwprop.o -MT tree-ssa-forwprop.o -MMD -MP -MF ./.dep= s/tree-ssa-forwprop.TPo ../../gcc/gcc/tree-ssa-forwprop.cc > ../../gcc/gcc/tree-ssa-forwprop.cc: In function 'bool simplify_builtin_ca= ll(gimple_stmt_iterator*, tree)': > ../../gcc/gcc/tree-ssa-forwprop.cc:1258:42: error: array subscript 1 is o= utside array bounds of 'tree_node* [1]' [-Werror=3Darray-bounds] > 1258 | op[i - 1] =3D fold_convert_loc (loc, boolean_type_nod= e, > | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ > 1259 | fold_build2_loc (loc, > | ~~~~~~~~~~~~~~~~~~~~~ > 1260 | BIT_IO= R_EXPR, > | ~~~~~~= ~~~~~~~ > 1261 | boolea= n_type_node, > | ~~~~~~= ~~~~~~~~~~~~ > 1262 | op[i -= 1], > | ~~~~~~= ~~~~ > 1263 | op[i])= ); > | ~~~~~~= ~ > In file included from ../../gcc/gcc/system.h:707, > from ../../gcc/gcc/tree-ssa-forwprop.cc:21: > ../../gcc/gcc/../include/libiberty.h:733:36: note: at offset 8 into objec= t of size [0, 8] allocated by '__builtin_alloca' > 733 | # define alloca(x) __builtin_alloca(x) > | ~~~~~~~~~~~~~~~~^~~ > ../../gcc/gcc/../include/libiberty.h:365:40: note: in expansion of macro = 'alloca' > 365 | #define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N))) > | ^~~~~~ > ../../gcc/gcc/tree-ssa-forwprop.cc:1250:22: note: in expansion of macro '= XALLOCAVEC' > 1250 | tree *op =3D XALLOCAVEC (tree, isize); > | ^~~~~~~~~~ > cc1plus: all warnings being treated as errors > make[1]: *** [Makefile:1146: tree-ssa-forwprop.o] Error 1 > make[1]: Leaving directory '/var/lib/laminar/run/gcc-pru-elf/1/toolchain-= build/gcc' > make: *** [Makefile:4583: all-gcc] Error 2 can you open a bugreport please? > Thanks, > Jan-Benedict > > --