From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29222 invoked by alias); 13 Jun 2011 06:12:56 -0000 Received: (qmail 29208 invoked by uid 22791); 13 Jun 2011 06:12:53 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,TW_TM X-Spam-Check-By: sourceware.org Received: from mail-pw0-f47.google.com (HELO mail-pw0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 13 Jun 2011 06:12:34 +0000 Received: by pwj9 with SMTP id 9so2090612pwj.20 for ; Sun, 12 Jun 2011 23:12:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.152.4 with SMTP id z4mr745019wfd.93.1307945552713; Sun, 12 Jun 2011 23:12:32 -0700 (PDT) Received: by 10.143.93.4 with HTTP; Sun, 12 Jun 2011 23:12:32 -0700 (PDT) Date: Mon, 13 Jun 2011 07:37:00 -0000 Message-ID: Subject: [patch] Fix PR tree-optimization/49352 From: Ira Rosen To: gcc-patches@gcc.gnu.org Cc: jakub@redhat.com, Patch Tracking Content-Type: multipart/mixed; boundary=000e0cd3289a0e170a04a591ce93 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/msg00961.txt.bz2 --000e0cd3289a0e170a04a591ce93 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1006 Hi, This patch fixes PR 49352 by ignoring debug uses in SLP reduction detection. While fixing it Jakub also discovered that an incorrect statement may be analyzed and operands of not commutative operation may be swapped. The patch fixes those as well. Bootstrapped and tested on powerpc64-suse-linux. Committed. Ira ChangeLog: 2011-06-13 Jakub Jelinek Ira Rosen PR tree-optimization/49352 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at all, make sure loop_use_stmt after the loop is a def stmt of a used SSA_NAME that is the only one defined inside of the loop. Don't check for COND_EXPR and GIMPLE_BINARY_RHS. (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if check_reduction is true. 2011-06-13 Jakub Jelinek Ira Rosen PR tree-optimization/49352 * gcc.dg/vect/pr49352.c: New test. --000e0cd3289a0e170a04a591ce93 Content-Type: text/plain; charset=US-ASCII; name="pr49352.txt" Content-Disposition: attachment; filename="pr49352.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gov0yh240 Content-length: 13441 SW5kZXg6IHRlc3RzdWl0ZS9nY2MuZGcvdmVjdC9wcjQ5MzUyLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1aXRlL2djYy5kZy92ZWN0L3By NDkzNTIuYwkocmV2aXNpb24gMCkKKysrIHRlc3RzdWl0ZS9nY2MuZGcvdmVj dC9wcjQ5MzUyLmMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKy8q IFBSIHRyZWUtb3B0aW1pemF0aW9uLzQ5MzUyICovCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rv cml6ZSAtZmNvbXBhcmUtZGVidWciIH0gKi8KKworaW50Citmb28gKGludCAq eCwgaW50ICp5LCBpbnQgbikKK3sKKyAgaW50IGksIGo7CisgIGludCBkb3Qg PSAwOworICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorICAgIGZvciAoaiA9 IDA7IGogPCAyOyBqKyspCisgICAgICBkb3QgKz0gKih4KyspICogKih5Kysp OworICByZXR1cm4gZG90OworfQpJbmRleDogdHJlZS12ZWN0LWxvb3AuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cmVlLXZlY3QtbG9vcC5jCShy ZXZpc2lvbiAxNzQ5ODEpCisrKyB0cmVlLXZlY3QtbG9vcC5jCSh3b3JraW5n IGNvcHkpCkBAIC0xNzEwLDEyICsxNzEwLDEyIEBAIHZlY3RfaXNfc2xwX3Jl ZHVjdGlvbiAobG9vcF92ZWNfaW5mbyBsb29wX2luZm8sIGdpCiAgIHN0cnVj dCBsb29wICpsb29wID0gKGdpbXBsZV9iYiAocGhpKSktPmxvb3BfZmF0aGVy OwogICBzdHJ1Y3QgbG9vcCAqdmVjdF9sb29wID0gTE9PUF9WSU5GT19MT09Q IChsb29wX2luZm8pOwogICBlbnVtIHRyZWVfY29kZSBjb2RlOwotICBnaW1w bGUgY3VycmVudF9zdG10ID0gTlVMTCwgdXNlX3N0bXQgPSBOVUxMLCBmaXJz dCwgbmV4dF9zdG10OworICBnaW1wbGUgY3VycmVudF9zdG10ID0gTlVMTCwg bG9vcF91c2Vfc3RtdCA9IE5VTEwsIGZpcnN0LCBuZXh0X3N0bXQ7CiAgIHN0 bXRfdmVjX2luZm8gdXNlX3N0bXRfaW5mbywgY3VycmVudF9zdG10X2luZm87 CiAgIHRyZWUgbGhzOwogICBpbW1fdXNlX2l0ZXJhdG9yIGltbV9pdGVyOwog ICB1c2Vfb3BlcmFuZF9wIHVzZV9wOwotICBpbnQgbmxvb3BfdXNlcywgc2l6 ZSA9IDAsIG51c2VzOworICBpbnQgbmxvb3BfdXNlcywgc2l6ZSA9IDA7CiAg IGJvb2wgZm91bmQgPSBmYWxzZTsKIAogICBpZiAobG9vcCAhPSB2ZWN0X2xv b3ApCkBAIC0xNzI2LDY2ICsxNzI2LDY4IEBAIHZlY3RfaXNfc2xwX3JlZHVj dGlvbiAobG9vcF92ZWNfaW5mbyBsb29wX2luZm8sIGdpCiAgIHdoaWxlICgx KQogICAgIHsKICAgICAgIG5sb29wX3VzZXMgPSAwOwotICAgICAgbnVzZXMg PSAwOwogICAgICAgRk9SX0VBQ0hfSU1NX1VTRV9GQVNUICh1c2VfcCwgaW1t X2l0ZXIsIGxocykKICAgICAgICAgewotICAgICAgICAgIHVzZV9zdG10ID0g VVNFX1NUTVQgKHVzZV9wKTsKLSAgICAgICAgICBudXNlcysrOworCSAgZ2lt cGxlIHVzZV9zdG10ID0gVVNFX1NUTVQgKHVzZV9wKTsKICAgICAgICAgICBp ZiAoaXNfZ2ltcGxlX2RlYnVnICh1c2Vfc3RtdCkpCiAgICAgICAgICAgICBj b250aW51ZTsKIAorCSAgdXNlX3N0bXQgPSBVU0VfU1RNVCAodXNlX3ApOwor CiAgICAgICAgICAgLyogQ2hlY2sgaWYgd2UgZ290IGJhY2sgdG8gdGhlIHJl ZHVjdGlvbiBwaGkuICAqLwotICAgICAgICAgIGlmIChnaW1wbGVfY29kZSAo dXNlX3N0bXQpID09IEdJTVBMRV9QSEkKLSAgICAgICAgICAgICAgJiYgdXNl X3N0bXQgPT0gcGhpKQorCSAgaWYgKHVzZV9zdG10ID09IHBoaSkKICAgICAg ICAgICAgIHsKKwkgICAgICBsb29wX3VzZV9zdG10ID0gdXNlX3N0bXQ7CiAg ICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICBpZiAoZmxvd19iYl9p bnNpZGVfbG9vcF9wIChsb29wLCBnaW1wbGVfYmIgKHVzZV9zdG10KSkKICAg ICAgICAgICAgICAgJiYgdmluZm9fZm9yX3N0bXQgKHVzZV9zdG10KQotICAg ICAgICAgICAgICAmJiAhaXNfcGF0dGVybl9zdG10X3AgKHZpbmZvX2Zvcl9z dG10ICh1c2Vfc3RtdCkpCi0gICAgICAgICAgICAgICYmIHVzZV9zdG10ICE9 IGZpcnN0X3N0bXQpCi0gICAgICAgICAgICBubG9vcF91c2VzKys7CisJICAg ICAgJiYgIVNUTVRfVklORk9fSU5fUEFUVEVSTl9QICh2aW5mb19mb3Jfc3Rt dCAodXNlX3N0bXQpKSkKKwkgICAgeworCSAgICAgIGxvb3BfdXNlX3N0bXQg PSB1c2Vfc3RtdDsKKwkgICAgICBubG9vcF91c2VzKys7CisJICAgIH0KIAog ICAgICAgICAgIGlmIChubG9vcF91c2VzID4gMSkKICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAvKiBXZSByZWFjaGVk IGEgc3RhdGVtZW50IHdpdGggbm8gdXNlcy4gICovCi0gICAgICBpZiAobnVz ZXMgPT0gMCkKLQlyZXR1cm4gZmFsc2U7Ci0KICAgICAgIGlmIChmb3VuZCkK ICAgICAgICAgYnJlYWs7CiAKKyAgICAgIC8qIFdlIHJlYWNoZWQgYSBzdGF0 ZW1lbnQgd2l0aCBubyBsb29wIHVzZXMuICAqLworICAgICAgaWYgKG5sb29w X3VzZXMgPT0gMCkKKwlyZXR1cm4gZmFsc2U7CisKICAgICAgIC8qIFRoaXMg aXMgYSBsb29wIGV4aXQgcGhpLCBhbmQgd2UgaGF2ZW4ndCByZWFjaGVkIHRo ZSByZWR1Y3Rpb24gcGhpLiAgKi8KLSAgICAgIGlmIChnaW1wbGVfY29kZSAo dXNlX3N0bXQpID09IEdJTVBMRV9QSEkpCisgICAgICBpZiAoZ2ltcGxlX2Nv ZGUgKGxvb3BfdXNlX3N0bXQpID09IEdJTVBMRV9QSEkpCiAgICAgICAgIHJl dHVybiBmYWxzZTsKIAotICAgICAgaWYgKCFpc19naW1wbGVfYXNzaWduICh1 c2Vfc3RtdCkKLSAgICAgICAgICB8fCBjb2RlICE9IGdpbXBsZV9hc3NpZ25f cmhzX2NvZGUgKHVzZV9zdG10KQotICAgICAgICAgIHx8ICFmbG93X2JiX2lu c2lkZV9sb29wX3AgKGxvb3AsIGdpbXBsZV9iYiAodXNlX3N0bXQpKSkKKyAg ICAgIGlmICghaXNfZ2ltcGxlX2Fzc2lnbiAobG9vcF91c2Vfc3RtdCkKKwkg IHx8IGNvZGUgIT0gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAobG9vcF91c2Vf c3RtdCkKKwkgIHx8ICFmbG93X2JiX2luc2lkZV9sb29wX3AgKGxvb3AsIGdp bXBsZV9iYiAobG9vcF91c2Vfc3RtdCkpKQogICAgICAgICByZXR1cm4gZmFs c2U7CiAKICAgICAgIC8qIEluc2VydCBVU0VfU1RNVCBpbnRvIHJlZHVjdGlv biBjaGFpbi4gICovCi0gICAgICB1c2Vfc3RtdF9pbmZvID0gdmluZm9fZm9y X3N0bXQgKHVzZV9zdG10KTsKKyAgICAgIHVzZV9zdG10X2luZm8gPSB2aW5m b19mb3Jfc3RtdCAobG9vcF91c2Vfc3RtdCk7CiAgICAgICBpZiAoY3VycmVu dF9zdG10KQogICAgICAgICB7CiAgICAgICAgICAgY3VycmVudF9zdG10X2lu Zm8gPSB2aW5mb19mb3Jfc3RtdCAoY3VycmVudF9zdG10KTsKLSAgICAgICAg ICBHUk9VUF9ORVhUX0VMRU1FTlQgKGN1cnJlbnRfc3RtdF9pbmZvKSA9IHVz ZV9zdG10OworCSAgR1JPVVBfTkVYVF9FTEVNRU5UIChjdXJyZW50X3N0bXRf aW5mbykgPSBsb29wX3VzZV9zdG10OwogICAgICAgICAgIEdST1VQX0ZJUlNU X0VMRU1FTlQgKHVzZV9zdG10X2luZm8pCiAgICAgICAgICAgICA9IEdST1VQ X0ZJUlNUX0VMRU1FTlQgKGN1cnJlbnRfc3RtdF9pbmZvKTsKICAgICAgICAg fQogICAgICAgZWxzZQotICAgICAgICAgIEdST1VQX0ZJUlNUX0VMRU1FTlQg KHVzZV9zdG10X2luZm8pID0gdXNlX3N0bXQ7CisJR1JPVVBfRklSU1RfRUxF TUVOVCAodXNlX3N0bXRfaW5mbykgPSBsb29wX3VzZV9zdG10OwogCi0gICAg ICBsaHMgPSBnaW1wbGVfYXNzaWduX2xocyAodXNlX3N0bXQpOwotICAgICAg Y3VycmVudF9zdG10ID0gdXNlX3N0bXQ7CisgICAgICBsaHMgPSBnaW1wbGVf YXNzaWduX2xocyAobG9vcF91c2Vfc3RtdCk7CisgICAgICBjdXJyZW50X3N0 bXQgPSBsb29wX3VzZV9zdG10OwogICAgICAgc2l6ZSsrOwogICAgfQogCi0g IGlmICghZm91bmQgfHwgdXNlX3N0bXQgIT0gcGhpIHx8IHNpemUgPCAyKQor ICBpZiAoIWZvdW5kIHx8IGxvb3BfdXNlX3N0bXQgIT0gcGhpIHx8IHNpemUg PCAyKQogICAgIHJldHVybiBmYWxzZTsKIAogICAvKiBTd2FwIHRoZSBvcGVy YW5kcywgaWYgbmVlZGVkLCB0byBtYWtlIHRoZSByZWR1Y3Rpb24gb3BlcmFu ZCBiZSB0aGUgc2Vjb25kCkBAIC0xNzk0LDc1ICsxNzk2LDcwIEBAIHZlY3Rf aXNfc2xwX3JlZHVjdGlvbiAobG9vcF92ZWNfaW5mbyBsb29wX2luZm8sIGdp CiAgIG5leHRfc3RtdCA9IEdST1VQX0ZJUlNUX0VMRU1FTlQgKHZpbmZvX2Zv cl9zdG10IChjdXJyZW50X3N0bXQpKTsKICAgd2hpbGUgKG5leHRfc3RtdCkK ICAgICB7Ci0gICAgICBpZiAoZ2V0X2dpbXBsZV9yaHNfY2xhc3MgKGNvZGUp ID09IEdJTVBMRV9CSU5BUllfUkhTKQorICAgICAgaWYgKGdpbXBsZV9hc3Np Z25fcmhzMiAobmV4dF9zdG10KSA9PSBsaHMpCiAJewotICAgICAgICAgIGlm IChnaW1wbGVfYXNzaWduX3JoczIgKG5leHRfc3RtdCkgPT0gbGhzKQotCSAg ICB7Ci0JICAgICAgdHJlZSBvcCA9IGdpbXBsZV9hc3NpZ25fcmhzMSAobmV4 dF9zdG10KTsKLSAgICAgICAgICAgICAgZ2ltcGxlIGRlZl9zdG10ID0gTlVM TDsKKwkgIHRyZWUgb3AgPSBnaW1wbGVfYXNzaWduX3JoczEgKG5leHRfc3Rt dCk7CisgICAgICAgICAgZ2ltcGxlIGRlZl9zdG10ID0gTlVMTDsKIAotICAg ICAgICAgICAgICBpZiAoVFJFRV9DT0RFIChvcCkgPT0gU1NBX05BTUUpCi0g ICAgICAgICAgICAgICAgZGVmX3N0bXQgPSBTU0FfTkFNRV9ERUZfU1RNVCAo b3ApOworICAgICAgICAgIGlmIChUUkVFX0NPREUgKG9wKSA9PSBTU0FfTkFN RSkKKyAgICAgICAgICAgIGRlZl9zdG10ID0gU1NBX05BTUVfREVGX1NUTVQg KG9wKTsKIAotCSAgICAgIC8qIENoZWNrIHRoYXQgdGhlIG90aGVyIGRlZiBp cyBlaXRoZXIgZGVmaW5lZCBpbiB0aGUgbG9vcAotCQkgKCJ2ZWN0X2ludGVy bmFsX2RlZiIpLCBvciBpdCdzIGFuIGluZHVjdGlvbiAoZGVmaW5lZCBieSBh Ci0JCSBsb29wLWhlYWRlciBwaGktbm9kZSkuICAqLwotCSAgICAgIGlmIChj b2RlID09IENPTkRfRVhQUgotICAgICAgICAgICAgICAgICAgfHwgKGRlZl9z dG10Ci0JCSAgICAgICYmIGZsb3dfYmJfaW5zaWRlX2xvb3BfcCAobG9vcCwg Z2ltcGxlX2JiIChkZWZfc3RtdCkpCi0gICAgICAgICAgICAgICAgICAgICAg JiYgKGlzX2dpbXBsZV9hc3NpZ24gKGRlZl9zdG10KQotICAgICAgICAgICAg ICAgICAgICAgICAgICB8fCBpc19naW1wbGVfY2FsbCAoZGVmX3N0bXQpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFNUTVRfVklORk9fREVGX1RZ UEUgKHZpbmZvX2Zvcl9zdG10IChkZWZfc3RtdCkpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9PSB2ZWN0X2luZHVjdGlvbl9kZWYKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgfHwgKGdpbXBsZV9jb2RlIChkZWZfc3Rt dCkgPT0gR0lNUExFX1BISQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJiYgU1RNVF9WSU5GT19ERUZfVFlQRSAodmluZm9fZm9yX3N0bXQgKGRl Zl9zdG10KSkKKwkgIC8qIENoZWNrIHRoYXQgdGhlIG90aGVyIGRlZiBpcyBl aXRoZXIgZGVmaW5lZCBpbiB0aGUgbG9vcAorCSAgICAgKCJ2ZWN0X2ludGVy bmFsX2RlZiIpLCBvciBpdCdzIGFuIGluZHVjdGlvbiAoZGVmaW5lZCBieSBh CisJICAgICBsb29wLWhlYWRlciBwaGktbm9kZSkuICAqLworICAgICAgICAg IGlmIChkZWZfc3RtdAorCSAgICAgICYmIGZsb3dfYmJfaW5zaWRlX2xvb3Bf cCAobG9vcCwgZ2ltcGxlX2JiIChkZWZfc3RtdCkpCisgICAgICAgICAgICAg ICYmIChpc19naW1wbGVfYXNzaWduIChkZWZfc3RtdCkKKyAgICAgICAgICAg ICAgICAgIHx8IGlzX2dpbXBsZV9jYWxsIChkZWZfc3RtdCkKKyAgICAgICAg ICAgICAgICAgIHx8IFNUTVRfVklORk9fREVGX1RZUEUgKHZpbmZvX2Zvcl9z dG10IChkZWZfc3RtdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA9 PSB2ZWN0X2luZHVjdGlvbl9kZWYKKyAgICAgICAgICAgICAgICAgIHx8IChn aW1wbGVfY29kZSAoZGVmX3N0bXQpID09IEdJTVBMRV9QSEkKKyAgICAgICAg ICAgICAgICAgICAgICAmJiBTVE1UX1ZJTkZPX0RFRl9UWVBFICh2aW5mb19m b3Jfc3RtdCAoZGVmX3N0bXQpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID09IHZlY3RfaW50ZXJuYWxfZGVmCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmJiAhaXNfbG9vcF9oZWFkZXJfYmJfcCAoZ2lt cGxlX2JiIChkZWZfc3RtdCkpKSkpKQotCQl7Ci0JCSAgbGhzID0gZ2ltcGxl X2Fzc2lnbl9saHMgKG5leHRfc3RtdCk7Ci0JCSAgbmV4dF9zdG10ID0gR1JP VVBfTkVYVF9FTEVNRU5UICh2aW5mb19mb3Jfc3RtdCAobmV4dF9zdG10KSk7 Ci0gCQkgIGNvbnRpbnVlOwotCQl9Ci0KLQkgICAgICByZXR1cm4gZmFsc2U7 Ci0JICAgIH0KLQkgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAmJiAh aXNfbG9vcF9oZWFkZXJfYmJfcCAoZ2ltcGxlX2JiIChkZWZfc3RtdCkpKSkp CiAJICAgIHsKLSAgICAgICAgICAgICAgdHJlZSBvcCA9IGdpbXBsZV9hc3Np Z25fcmhzMiAobmV4dF9zdG10KTsKLSAgICAgICAgICAgICAgZ2ltcGxlIGRl Zl9zdG10ID0gTlVMTDsKKwkgICAgICBsaHMgPSBnaW1wbGVfYXNzaWduX2xo cyAobmV4dF9zdG10KTsKKwkgICAgICBuZXh0X3N0bXQgPSBHUk9VUF9ORVhU X0VMRU1FTlQgKHZpbmZvX2Zvcl9zdG10IChuZXh0X3N0bXQpKTsKKyAJICAg ICAgY29udGludWU7CisJICAgIH0KIAotICAgICAgICAgICAgICBpZiAoVFJF RV9DT0RFIChvcCkgPT0gU1NBX05BTUUpCi0gICAgICAgICAgICAgICAgZGVm X3N0bXQgPSBTU0FfTkFNRV9ERUZfU1RNVCAob3ApOworCSAgcmV0dXJuIGZh bHNlOworCX0KKyAgICAgIGVsc2UKKwl7CisgICAgICAgICAgdHJlZSBvcCA9 IGdpbXBsZV9hc3NpZ25fcmhzMiAobmV4dF9zdG10KTsKKyAgICAgICAgICBn aW1wbGUgZGVmX3N0bXQgPSBOVUxMOwogCi0gICAgICAgICAgICAgIC8qIENo ZWNrIHRoYXQgdGhlIG90aGVyIGRlZiBpcyBlaXRoZXIgZGVmaW5lZCBpbiB0 aGUgbG9vcAotICAgICAgICAgICAgICAgICAoInZlY3RfaW50ZXJuYWxfZGVm IiksIG9yIGl0J3MgYW4gaW5kdWN0aW9uIChkZWZpbmVkIGJ5IGEKLSAgICAg ICAgICAgICAgICAgbG9vcC1oZWFkZXIgcGhpLW5vZGUpLiAgKi8KLSAgICAg ICAgICAgICAgaWYgKGNvZGUgPT0gQ09ORF9FWFBSCi0gICAgICAgICAgICAg ICAgICB8fCAoZGVmX3N0bXQKLQkJICAgICAgJiYgZmxvd19iYl9pbnNpZGVf bG9vcF9wIChsb29wLCBnaW1wbGVfYmIgKGRlZl9zdG10KSkKLSAgICAgICAg ICAgICAgICAgICAgICAmJiAoaXNfZ2ltcGxlX2Fzc2lnbiAoZGVmX3N0bXQp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGlzX2dpbXBsZV9jYWxs IChkZWZfc3RtdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgU1RN VF9WSU5GT19ERUZfVFlQRSAodmluZm9fZm9yX3N0bXQgKGRlZl9zdG10KSkK KyAgICAgICAgICBpZiAoVFJFRV9DT0RFIChvcCkgPT0gU1NBX05BTUUpCisg ICAgICAgICAgICBkZWZfc3RtdCA9IFNTQV9OQU1FX0RFRl9TVE1UIChvcCk7 CisKKyAgICAgICAgICAvKiBDaGVjayB0aGF0IHRoZSBvdGhlciBkZWYgaXMg ZWl0aGVyIGRlZmluZWQgaW4gdGhlIGxvb3AKKyAgICAgICAgICAgICgidmVj dF9pbnRlcm5hbF9kZWYiKSwgb3IgaXQncyBhbiBpbmR1Y3Rpb24gKGRlZmlu ZWQgYnkgYQorICAgICAgICAgICAgbG9vcC1oZWFkZXIgcGhpLW5vZGUpLiAg Ki8KKyAgICAgICAgICBpZiAoZGVmX3N0bXQKKwkgICAgICAmJiBmbG93X2Ji X2luc2lkZV9sb29wX3AgKGxvb3AsIGdpbXBsZV9iYiAoZGVmX3N0bXQpKQor ICAgICAgICAgICAgICAmJiAoaXNfZ2ltcGxlX2Fzc2lnbiAoZGVmX3N0bXQp CisgICAgICAgICAgICAgICAgICB8fCBpc19naW1wbGVfY2FsbCAoZGVmX3N0 bXQpCisgICAgICAgICAgICAgICAgICB8fCBTVE1UX1ZJTkZPX0RFRl9UWVBF ICh2aW5mb19mb3Jfc3RtdCAoZGVmX3N0bXQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPT0gdmVjdF9pbmR1Y3Rpb25fZGVmCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIHx8IChnaW1wbGVfY29kZSAoZGVmX3N0bXQp ID09IEdJTVBMRV9QSEkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICYmIFNUTVRfVklORk9fREVGX1RZUEUgKHZpbmZvX2Zvcl9zdG10IChkZWZf c3RtdCkpCisgICAgICAgICAgICAgICAgICB8fCAoZ2ltcGxlX2NvZGUgKGRl Zl9zdG10KSA9PSBHSU1QTEVfUEhJCisgICAgICAgICAgICAgICAgICAgICAg JiYgU1RNVF9WSU5GT19ERUZfVFlQRSAodmluZm9fZm9yX3N0bXQgKGRlZl9z dG10KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSB2 ZWN0X2ludGVybmFsX2RlZgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJiYgIWlzX2xvb3BfaGVhZGVyX2JiX3AgKGdpbXBsZV9iYiAoZGVmX3N0 bXQpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAmJiAhaXNfbG9vcF9o ZWFkZXJfYmJfcCAoZ2ltcGxlX2JiIChkZWZfc3RtdCkpKSkpCisgIAkgICAg eworCSAgICAgIGlmICh2ZWN0X3ByaW50X2R1bXBfaW5mbyAoUkVQT1JUX0RF VEFJTFMpKQogCQl7Ci0JCSAgaWYgKHZlY3RfcHJpbnRfZHVtcF9pbmZvIChS RVBPUlRfREVUQUlMUykpCi0JCSAgICB7Ci0JCSAgICAgIGZwcmludGYgKHZl Y3RfZHVtcCwgInN3YXBwaW5nIG9wcm5kczogIik7Ci0JCSAgICAgIHByaW50 X2dpbXBsZV9zdG10ICh2ZWN0X2R1bXAsIG5leHRfc3RtdCwgMCwgVERGX1NM SU0pOwotCQkgICAgfQotCi0JCSAgc3dhcF90cmVlX29wZXJhbmRzIChuZXh0 X3N0bXQsCi0JCQkgICAgICBnaW1wbGVfYXNzaWduX3JoczFfcHRyIChuZXh0 X3N0bXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ltcGxl X2Fzc2lnbl9yaHMyX3B0ciAobmV4dF9zdG10KSk7Ci0JCSAgbWFya19zeW1i b2xzX2Zvcl9yZW5hbWluZyAobmV4dF9zdG10KTsKKwkJICBmcHJpbnRmICh2 ZWN0X2R1bXAsICJzd2FwcGluZyBvcHJuZHM6ICIpOworCQkgIHByaW50X2dp bXBsZV9zdG10ICh2ZWN0X2R1bXAsIG5leHRfc3RtdCwgMCwgVERGX1NMSU0p OwogCQl9Ci0JICAgICAgZWxzZQotCQlyZXR1cm4gZmFsc2U7CisKKwkgICAg ICBzd2FwX3RyZWVfb3BlcmFuZHMgKG5leHRfc3RtdCwKKwkgCQkgICAgICAg ICAgZ2ltcGxlX2Fzc2lnbl9yaHMxX3B0ciAobmV4dF9zdG10KSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW1wbGVfYXNzaWduX3Jo czJfcHRyIChuZXh0X3N0bXQpKTsKKwkgICAgICBtYXJrX3N5bWJvbHNfZm9y X3JlbmFtaW5nIChuZXh0X3N0bXQpOwogCSAgICB9CisJICBlbHNlCisJICAg IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICBsaHMgPSBnaW1w bGVfYXNzaWduX2xocyAobmV4dF9zdG10KTsKQEAgLTIyNzMsNyArMjI3MCw3 IEBAIHZlY3RfaXNfc2ltcGxlX3JlZHVjdGlvbl8xIChsb29wX3ZlY19pbmZv IGxvb3BfaW5mCiAgICAgfQogCiAgIC8qIFRyeSB0byBmaW5kIFNMUCByZWR1 Y3Rpb24gY2hhaW4uICAqLwotICBpZiAodmVjdF9pc19zbHBfcmVkdWN0aW9u IChsb29wX2luZm8sIHBoaSwgZGVmX3N0bXQpKQorICBpZiAoY2hlY2tfcmVk dWN0aW9uICYmIHZlY3RfaXNfc2xwX3JlZHVjdGlvbiAobG9vcF9pbmZvLCBw aGksIGRlZl9zdG10KSkKICAgICB7CiAgICAgICBpZiAodmVjdF9wcmludF9k dW1wX2luZm8gKFJFUE9SVF9ERVRBSUxTKSkKICAgICAgICAgcmVwb3J0X3Zl Y3Rfb3AgKGRlZl9zdG10LCAicmVkdWN0aW9uOiBkZXRlY3RlZCByZWR1Y3Rp b24gY2hhaW46ICIpOwo= --000e0cd3289a0e170a04a591ce93--