From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31224 invoked by alias); 1 Nov 2011 07:42:59 -0000 Received: (qmail 31212 invoked by uid 22791); 1 Nov 2011 07:42:58 -0000 X-SWARE-Spam-Status: No, hits=3.5 required=5.0 tests=AWL,BAYES_00,CHARSET_FARAWAY_HEADER,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_CX,TW_DC,TW_IB,TW_TM X-Spam-Check-By: sourceware.org Received: from mail-bw0-f47.google.com (HELO mail-bw0-f47.google.com) (209.85.214.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 01 Nov 2011 07:42:41 +0000 Received: by bkbzv3 with SMTP id zv3so3214636bkb.20 for ; Tue, 01 Nov 2011 00:42:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.130.208 with SMTP id u16mr13835902bks.47.1320133359852; Tue, 01 Nov 2011 00:42:39 -0700 (PDT) Received: by 10.204.19.65 with HTTP; Tue, 1 Nov 2011 00:42:39 -0700 (PDT) Date: Tue, 01 Nov 2011 07:42:00 -0000 Message-ID: Subject: IVopts bug? From: =?GB2312?B?tsXUvbqj?= To: gcc@gcc.gnu.org Content-Type: multipart/mixed; boundary=00151747c152f85e9a04b0a77f32 X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2011-11/txt/msg00002.txt.bz2 --00151747c152f85e9a04b0a77f32 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 3455 Hi all I found IVopts rewrite a memory access with a weird iv candidate, which make it lost its original memory attribute. a non-local memory access' base pointer was rewrite into a local one, and it was deleted in pass_cd_dce since it was recognized as a local memory access. here is the case i simplified from a decoder source foo1(unsigned char* pSrcLeft, unsigned char* pSrcAbove, unsigned char* pSrcAboveLeft, unsigned char* pDst, int dstStep, int leftStep) { signed int x, y, s; unsigned char p1[5], p2[5], p3; p1[0] = *pSrcAboveLeft; p2[0] = p1[0]; p2[1] = pSrcLeft[0]; pSrcLeft += leftStep; p2[2] = pSrcLeft[0]; pSrcLeft += leftStep; p2[3] = pSrcLeft[0]; pSrcLeft += leftStep; p2[4] = pSrcLeft[0]; p1[1] = pSrcAbove[0]; p1[2] = pSrcAbove[1]; p1[3] = pSrcAbove[2]; p1[4] = pSrcAbove[3]; p3 = (unsigned char)(((signed int)p1[1] + (signed int)p2[1] + (signed int)p1[0] +(signed int)p1[0] + 2 ) >> 2 ); for( y=0; y<4; y++, pDst += dstStep ) { for( x=y+1; x<4; x++ ) { s = ( p1[x-y-1] + p1[x-y] + p1[x-y] + p1[x-y+1] + 2 ) >> 2; pDst[x] = (unsigned char)s; } pDst[y] = p3; -----------------This memory access } } before IVopts D.6508_65 = pDst_88 + y.6_64; *D.6508_65 = p3_37; after IVopts it was rewrite to MEM[symbol: p1, index: ivtmp.161_200, offset: 0B] = p3_37 , by candidate 15 depends on 3 var_before ivtmp.161 var_after ivtmp.161 incremented before exit test type unsigned int base (unsigned int) pDst_39(D) - (unsigned int) &p1 step (unsigned int) (pretmp.28_118 + 1) so it still is &p1+ pDst - &p1 + step = pDst + step, and in pass_cd_dce, is_hidden_global_store () return false for this memory since it think this stmt only access local array p1. gcc version r180694 Configured with: /home/croseadu/android/_src/src/gcc-src/configure --host=i486-linux-gnu --build=i486-linux-gnu --target=arm-none-linux-gnueabi --prefix=/home/croseadu/android/_src/install/arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}' --disable-nls --enable-lto --with-sysroot=/home/croseadu/android/_src/install/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc --with-build-sysroot=/home/croseadu/android/_src/install/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc --with-gmp=/home/croseadu/android/_src/objs/arm-none-linux-gnueabi/obj/host-libs-/usr --with-mpfr=/home/croseadu/android/_src/objs/arm-none-linux-gnueabi/obj/host-libs-/usr --with-ppl=/home/croseadu/android/_src/objs/arm-none-linux-gnueabi/obj/host-libs-/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/home/croseadu/android/_src/objs/arm-none-linux-gnueabi/obj/host-libs-/usr --enable-cloog-backend=isl --with-mpc=/home/croseadu/android/_src/objs/arm-none-linux-gnueabi/obj/host-libs-/usr --enable-poison-system-directories --disable-libquadmath --enable-lto --enable-libgomp --with-build-time-tools=/home/croseadu/android/_src/install/arm-none-linux-gnueabi/arm-none-linux-gnueabi/bin --with-cpu=cortex-a8 --with-float=soft compile flags: -O3 -mfpu=neon -mfloat-abi=softfp -mvectorize-with-neon-double need file a bug? Yuehai Du --00151747c152f85e9a04b0a77f32 Content-Type: text/x-csrc; charset=US-ASCII; name="bugReport.c" Content-Disposition: attachment; filename="bugReport.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gugkqifp0 Content-length: 3258 CiNpbmNsdWRlIDxzdGRhcmcuaD4KCiNkZWZpbmUgTiAxMAoKX19hdHRyaWJ1 dGVfXyAoKG5vaW5saW5lKSkgdm9pZCAKZm9vMSh1bnNpZ25lZCBjaGFyKiBw U3JjTGVmdCwKICAgICB1bnNpZ25lZCBjaGFyKiBwU3JjQWJvdmUsCiAgICAg dW5zaWduZWQgY2hhciogcFNyY0Fib3ZlTGVmdCwKICAgICB1bnNpZ25lZCBj aGFyKiBwRHN0LAogICAgIGludCBkc3RTdGVwLAogICAgIGludCBsZWZ0U3Rl cCkKewogIHNpZ25lZCBpbnQgeCwgeSwgczsKICB1bnNpZ25lZCBjaGFyICBw MVs1XSwgcDJbNV0sICBwMzsKCiAgcDFbMF0gPSAqcFNyY0Fib3ZlTGVmdDsK ICBwMlswXSA9IHAxWzBdOwogIHAyWzFdID0gcFNyY0xlZnRbMF07CiAgcFNy Y0xlZnQgKz0gbGVmdFN0ZXA7CiAgcDJbMl0gPSBwU3JjTGVmdFswXTsKICBw U3JjTGVmdCArPSBsZWZ0U3RlcDsKICBwMlszXSA9IHBTcmNMZWZ0WzBdOwog IHBTcmNMZWZ0ICs9IGxlZnRTdGVwOwogIHAyWzRdID0gcFNyY0xlZnRbMF07 CgogIHAxWzFdID0gcFNyY0Fib3ZlWzBdOwogIHAxWzJdID0gcFNyY0Fib3Zl WzFdOwogIHAxWzNdID0gcFNyY0Fib3ZlWzJdOwogIHAxWzRdID0gcFNyY0Fi b3ZlWzNdOwoKICBwMyA9ICh1bnNpZ25lZCBjaGFyKSgoKHNpZ25lZCBpbnQp cDFbMV0gKyAoc2lnbmVkIGludClwMlsxXSArIChzaWduZWQgaW50KXAxWzBd CgkJKyhzaWduZWQgaW50KXAxWzBdICsgMiApID4+IDIgKTsKCiAgZm9yKCB5 PTA7IHk8NDsgeSsrLCBwRHN0ICs9IGRzdFN0ZXAgKSB7CiAgICBmb3IoIHg9 eSsxOyB4PDQ7IHgrKyApIHsKICAgICAgICAgICAgICAgICAgICBzID0gKCBw MVt4LXktMV0gKyBwMVt4LXldICsgcDFbeC15XSArIHAxW3gteSsxXSArIDIg KSA+PiAyOwogICAgICAgICAgICAgICAgICAgIHBEc3RbeF0gPSAodW5zaWdu ZWQgY2hhcilzOwogICAgfQogICAgICAgCiAgICBwRHN0W3ldID0gcDM7CiAg fQp9CgpfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSB2b2lkIApmb28yKHVu c2lnbmVkIGNoYXIqIHBTcmNMZWZ0LAogICAgIHVuc2lnbmVkIGNoYXIqIHBT cmNBYm92ZSwKICAgICB1bnNpZ25lZCBjaGFyKiBwU3JjQWJvdmVMZWZ0LAog ICAgIHVuc2lnbmVkIGNoYXIqIHBEc3QsCiAgICAgaW50IGRzdFN0ZXAsCiAg ICAgaW50IGxlZnRTdGVwKQp7CiAgc2lnbmVkIGludCB4LCB5LCBzOwogIHVu c2lnbmVkIGNoYXIgIHAxWzVdLCBwMls1XSwgcDM7CgogIHAxWzBdID0gKnBT cmNBYm92ZUxlZnQ7CiAgcDJbMF0gPSBwMVswXTsKICBwMlsxXSA9IHBTcmNM ZWZ0WzBdOwogIHBTcmNMZWZ0ICs9IGxlZnRTdGVwOwogIHAyWzJdID0gcFNy Y0xlZnRbMF07CiAgcFNyY0xlZnQgKz0gbGVmdFN0ZXA7CiAgcDJbM10gPSBw U3JjTGVmdFswXTsKICBwU3JjTGVmdCArPSBsZWZ0U3RlcDsKICBwMls0XSA9 IHBTcmNMZWZ0WzBdOwoKICBwMVsxXSA9IHBTcmNBYm92ZVswXTsKICBwMVsy XSA9IHBTcmNBYm92ZVsxXTsKICBwMVszXSA9IHBTcmNBYm92ZVsyXTsKICBw MVs0XSA9IHBTcmNBYm92ZVszXTsKCiAgcDMgPSAodW5zaWduZWQgY2hhciko KChzaWduZWQgaW50KXAxWzFdICsgKHNpZ25lZCBpbnQpcDJbMV0gKyAoc2ln bmVkIGludClwMVswXQoJCSsoc2lnbmVkIGludClwMVswXSArIDIgKSA+PiAy ICk7CgogIGZvciggeT0wOyB5PDQ7IHkrKywgcERzdCArPSBkc3RTdGVwICkg ewogICAgZm9yKCB4PXkrMTsgeDw0OyB4KysgKSB7CiAgICAgICAgICAgICAg ICAgICAgcyA9ICggcDFbeC15LTFdICsgcDFbeC15XSArIHAxW3gteV0gKyBw MVt4LXkrMV0gKyAyICkgPj4gMjsKICAgICAgICAgICAgICAgICAgICBwRHN0 W3hdID0gKHVuc2lnbmVkIGNoYXIpczsKCQkgICAgX19hc21fXyB2b2xhdGls ZSAoIiIpOyAgICAKICAgIH0KICAgICAgIAogICAgcERzdFt5XSA9IHAzOwog IH0KfQoKCnVuc2lnbmVkIGNoYXIgcFNyY0xlZnRbTl07CnVuc2lnbmVkIGNo YXIgcFNyY0Fib3ZlW05dOwp1bnNpZ25lZCBjaGFyIHBTcmNBYm92ZUxlZnRb Tl07CnVuc2lnbmVkIGNoYXIgcERzdDFbTl07CnVuc2lnbmVkIGNoYXIgcERz dDJbTl07CgppbnQgbWFpbigpCnsKCglpbnQgaTsKCglmb3IgKGk9MDsgaTxO OyBpKyspCgl7CgkJcFNyY0xlZnRbaV0gPSBpKjI7CgkJcFNyY0Fib3ZlW2ld ID0gMjAwLWk7CgkJcFNyY0Fib3ZlTGVmdFtpXSA9IDIwKzIqaS0xOwoJCXBE c3QxW2ldID0gMjU1OwoJCXBEc3QyW2ldID0gMjU1OwoJfQoKCQoJZm9vMShw U3JjTGVmdCwgcFNyY0Fib3ZlLCBwU3JjQWJvdmVMZWZ0LCBwRHN0MSwgMSwx KTsKCWZvbzIocFNyY0xlZnQsIHBTcmNBYm92ZSwgcFNyY0Fib3ZlTGVmdCwg cERzdDIsIDEsMSk7CgoJZm9yIChpPTA7IGk8TjsgaSsrKQoJICB7CgkgICAg aWYgKHBEc3QxW2ldICE9IHBEc3QyW2ldKQoJICAgICAgYWJvcnQoKTsKCSAg fQoKCXJldHVybiAwOwp9Cg== --00151747c152f85e9a04b0a77f32--