From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26146 invoked by alias); 10 Jun 2011 07:19:55 -0000 Received: (qmail 26137 invoked by uid 22791); 10 Jun 2011 07:19:53 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,FRT_ADOBE2,RCVD_IN_DNSWL_LOW,TW_TM X-Spam-Check-By: sourceware.org Received: from mail-pz0-f47.google.com (HELO mail-pz0-f47.google.com) (209.85.210.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 10 Jun 2011 07:19:37 +0000 Received: by pzk36 with SMTP id 36so1179614pzk.20 for ; Fri, 10 Jun 2011 00:19:37 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.125.18 with SMTP id x18mr298495wfc.207.1307690377240; Fri, 10 Jun 2011 00:19:37 -0700 (PDT) Received: by 10.143.93.4 with HTTP; Fri, 10 Jun 2011 00:19:37 -0700 (PDT) Date: Fri, 10 Jun 2011 08:36:00 -0000 Message-ID: Subject: [patch] Fix PR tree-optimization/49318 From: Ira Rosen To: gcc-patches@gcc.gnu.org Cc: Patch Tracking Content-Type: multipart/mixed; boundary=000e0cd149c6695ff004a556642a 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 X-SW-Source: 2011-06/txt/msg00803.txt.bz2 --000e0cd149c6695ff004a556642a Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1053 Hi, The test in PR 49318 fails because the vectorizer recognizes address computation sequence as a widening-multiplication pattern, while such sequence is not relevant to vectorization. The problem is that the vectorizer doesn't check if a statement is going to be vectorized before replacing it with a pattern. Moreover, the vectorizer first detects the patterns and only after that looks for relevant statements. Changing the order is not a good option, since statements relevance is defined also by their belonging to a pattern. This patch solves the problem by removing pattern statements that were created for statements that are not supposed to be vectorized. Bootstrapped with vectorization enabled on powerpc64-suse-linux and tested on powerpc64-suse-linux and x86_64-suse-linux. Committed. Ira ChangeLog: PR tree-optimization/49318 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove irrelevant pattern statements. testsuite/ChangeLog: PR tree-optimization/49318 * gcc.dg/vect/pr49318.c: New test. --000e0cd149c6695ff004a556642a Content-Type: text/plain; charset=US-ASCII; name="pr49318.txt" Content-Disposition: attachment; filename="pr49318.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_goqsxykb0 Content-length: 3665 SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBD aGFuZ2VMb2cJKHJldmlzaW9uIDE3NDg4OSkKKysrIENoYW5nZUxvZwkod29y a2luZyBjb3B5KQpAQCAtMSwzICsxLDkgQEAKKzIwMTEtMDYtMTAgIElyYSBS b3NlbiAgPGlyYS5yb3NlbkBsaW5hcm8ub3JnPgorCisJUFIgdHJlZS1vcHRp bWl6YXRpb24vNDkzMTgKKwkqIHRyZWUtdmVjdC1sb29wLmMgKHZlY3RfZGV0 ZXJtaW5lX3ZlY3Rvcml6YXRpb25fZmFjdG9yKTogUmVtb3ZlCisJaXJyZWxl dmFudCBwYXR0ZXJuIHN0YXRlbWVudHMuCisKIDIwMTEtMDYtMTAgIEhhbnMt UGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgogCiAJKiBzeXN0ZW0uaCAo U0VUSk1QX1ZJQV9TQVZFX0FSRUEpOiBQb2lzb24uCkluZGV4OiB0ZXN0c3Vp dGUvZ2NjLmRnL3ZlY3QvcHI0OTMxOC5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHRlc3RzdWl0ZS9nY2MuZGcvdmVjdC9wcjQ5MzE4LmMJKHJldmlz aW9uIDApCisrKyB0ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvcHI0OTMxOC5jCShy ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVj dF9pbnQgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQg dmVjdF9mbG9hdCB9ICovCisKK3R5cGVkZWYgZW51bSB7IEdMX0ZBTFNFIH0g R0xlbnVtOwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIEdMYm9vbGVhbjsKK3R5 cGVkZWYgaW50IEdMaW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgR0x1aW50 OwordHlwZWRlZiBmbG9hdCBHTGZsb2F0OwordHlwZWRlZiBkb3VibGUgR0xk b3VibGU7Cit0eXBlZGVmIHN0cnVjdCBnbF9jb250ZXh0IEdMY29udGV4dDsK K3N0cnVjdCBnbF9jb250ZXh0IHsKKyAgR0xmbG9hdCBUZXh0dXJlTWF0cml4 WzE2XTsKKyAgR0xlbnVtIFByaW1pdGl2ZTsKK307Cit2b2lkIGdsX0dldERv dWJsZXYoIEdMY29udGV4dCAqY3R4LCBHTGVudW0gcG5hbWUsIEdMZG91Ymxl ICpwYXJhbXMgKSB7CisgIEdMdWludCBpOworICBmb3IgKGk9MDsgaTwxNjsg aSsrKQorICAgIHBhcmFtc1tpXSA9IChHTGludCkgY3R4LT5UZXh0dXJlTWF0 cml4W2ldOworfQorCisvKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1 bXAgInZlY3QiIH0gfSAqLwpJbmRleDogdGVzdHN1aXRlL0NoYW5nZUxvZwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvQ2hhbmdlTG9n CShyZXZpc2lvbiAxNzQ4ODkpCisrKyB0ZXN0c3VpdGUvQ2hhbmdlTG9nCSh3 b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOCBAQAorMjAxMS0wNi0xMCAgSXJh IFJvc2VuICA8aXJhLnJvc2VuQGxpbmFyby5vcmc+CisKKwlQUiB0cmVlLW9w dGltaXphdGlvbi80OTMxOAorCSogZ2NjLmRnL3ZlY3QvcHI0OTMxOC5jOiBO ZXcgdGVzdC4KKwogMjAxMS0wNi0wOSAgRGF2aWQgS3JhdXNzICA8cG90c3dh QG1hYy5jb20+CiAKIAkqIGcrKy5kZy90ZW1wbGF0ZS9hcnJvdzEuQzogTmV3 LgpJbmRleDogdHJlZS12ZWN0LWxvb3AuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSB0cmVlLXZlY3QtbG9vcC5jCShyZXZpc2lvbiAxNzQ4ODkpCisr KyB0cmVlLXZlY3QtbG9vcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsMTAg KzI1NSwyMCBAQCB2ZWN0X2RldGVybWluZV92ZWN0b3JpemF0aW9uX2ZhY3Rv ciAobG9vcF92ZWNfaW5mbwogCiAJICBnY2NfYXNzZXJ0IChzdG10X2luZm8p OwogCi0JICAvKiBza2lwIHN0bXRzIHdoaWNoIGRvIG5vdCBuZWVkIHRvIGJl IHZlY3Rvcml6ZWQuICAqLworCSAgLyogU2tpcCBzdG10cyB3aGljaCBkbyBu b3QgbmVlZCB0byBiZSB2ZWN0b3JpemVkLiAgKi8KIAkgIGlmICghU1RNVF9W SU5GT19SRUxFVkFOVF9QIChzdG10X2luZm8pCiAJICAgICAgJiYgIVNUTVRf VklORk9fTElWRV9QIChzdG10X2luZm8pKQogCSAgICB7CisgICAgICAgICAg ICAgIGlmIChpc19wYXR0ZXJuX3N0bXRfcCAoc3RtdF9pbmZvKSkKKyAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgLyogV2UgYXJlIG5v dCBnb2luZyB0byB2ZWN0b3JpemUgdGhpcyBwYXR0ZXJuIHN0YXRlbWVudCwK KyAgICAgICAgICAgICAgICAgICAgICB0aGVyZWZvcmUsIHJlbW92ZSBpdC4g ICovCisgICAgICAgICAgICAgICAgICBnaW1wbGVfc3RtdF9pdGVyYXRvciB0 bXBfZ3NpID0gZ3NpX2Zvcl9zdG10IChzdG10KTsKKyAgICAgICAgICAgICAg ICAgIFNUTVRfVklORk9fUkVMQVRFRF9TVE1UIChzdG10X2luZm8pID0gTlVM TDsKKyAgICAgICAgICAgICAgICAgIGdzaV9yZW1vdmUgKCZ0bXBfZ3NpLCB0 cnVlKTsKKyAgICAgICAgICAgICAgICAgIGZyZWVfc3RtdF92ZWNfaW5mbyAo c3RtdCk7CisgICAgICAgICAgICAgICAgfQorCiAJICAgICAgaWYgKHZlY3Rf cHJpbnRfZHVtcF9pbmZvIChSRVBPUlRfREVUQUlMUykpCiAJICAgICAgICBm cHJpbnRmICh2ZWN0X2R1bXAsICJza2lwLiIpOwogCSAgICAgIGNvbnRpbnVl Owo= --000e0cd149c6695ff004a556642a--