From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70377 invoked by alias); 23 Jul 2019 06:14:37 -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 70367 invoked by uid 89); 23 Jul 2019 06:14:36 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.1 spammy=GROUP, cid, advance!, lin X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0b-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.158.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 23 Jul 2019 06:14:34 +0000 Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6N67fL8097315 for ; Tue, 23 Jul 2019 02:14:32 -0400 Received: from e06smtp01.uk.ibm.com (e06smtp01.uk.ibm.com [195.75.94.97]) by mx0b-001b2d01.pphosted.com with ESMTP id 2twva395fd-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 23 Jul 2019 02:14:31 -0400 Received: from localhost by e06smtp01.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 23 Jul 2019 07:14:30 +0100 Received: from b06cxnps3075.portsmouth.uk.ibm.com (9.149.109.195) by e06smtp01.uk.ibm.com (192.168.101.131) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 23 Jul 2019 07:14:27 +0100 Received: from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com [9.149.105.232]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x6N6EQjW46399628 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 23 Jul 2019 06:14:26 GMT Received: from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B800852054; Tue, 23 Jul 2019 06:14:26 +0000 (GMT) Received: from 192.168.10.100 (unknown [9.197.230.181]) by d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTP id 95CEC52073; Tue, 23 Jul 2019 06:14:23 +0000 (GMT) Subject: [PATCH v5 3/3] PR80791 Consider doloop cmp use in ivopts From: "Kewen.Lin" To: "Bin.Cheng" Cc: gcc-patches List , segher@kernel.crashing.org, Bill Schmidt , Richard Guenther References: <1557803406-123657-1-git-send-email-linkw@linux.ibm.com> <2d897dc2-a01c-5005-6973-aad0c5930aa8@linux.ibm.com> <9d622cb7-2c1f-91bf-a61e-0239aa2ea8bf@linux.ibm.com> Date: Tue, 23 Jul 2019 06:28:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <9d622cb7-2c1f-91bf-a61e-0239aa2ea8bf@linux.ibm.com> Content-Type: multipart/mixed; boundary="------------8EC9E0E46430F4660FAC6924" x-cbid: 19072306-4275-0000-0000-0000034FBC8E X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19072306-4276-0000-0000-0000385FDFEB Message-Id: X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg01478.txt.bz2 This is a multi-part message in MIME format. --------------8EC9E0E46430F4660FAC6924 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 1317 Hi Bin, This patch follows your suggestion, to avoid use infinite cost iv cand to rewrite. In order to allow other IV cands to be considered, zeroing the iv cand cost if its users are only doloop uses. (See the typical case in previous reply.) Could you please have a look? Thanks in advance! Kewen ------------- gcc/ChangeLog 2019-07-23 Kewen Lin PR middle-end/80791 * target.def (have_count_reg_decr_p): New hook. * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): New hook. * doc/tm.texi: Regenerate. * config/rs6000/rs6000.c (rs6000_have_count_reg_decr_p): New function. (TARGET_HAVE_COUNT_REG_DECR_P): New macro. * tree-ssa-loop-ivopts.c (adjust_group_iv_cost_for_doloop): New function. (find_doloop_use): Likewise. (record_group): Init doloop_p. (determine_group_iv_cost): Call adjust_group_iv_cost_for_doloop. (tree_ssa_iv_optimize_loop): Call function have_count_reg_decr_p, generic_predict_doloop_p and find_doloop_use. (generic_predict_doloop_p): Update attribute. (iv_ca_set_no_cp): Adjust cand cost handling for doloop. (iv_ca_set_cp): Likewise. (iv_ca_new): Init n_cand_doloop_uses. (iv_ca_free): Free n_cand_doloop_uses. gcc/testsuite/ChangeLog 2019-07-23 Kewen Lin PR middle-end/80791 * gcc.dg/tree-ssa/ivopts-lt.c: Adjust. --------------8EC9E0E46430F4660FAC6924 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="reassoc_v5.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="reassoc_v5.diff" Content-length: 13860 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jIGIvZ2Nj L2NvbmZpZy9yczYwMDAvcnM2MDAwLmMKaW5kZXggNjY2N2NkMC4uZTk4YWJh OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMKKysr IGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMKQEAgLTE5MTIsNiArMTkx Miw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX3NwZWMgcnM2 MDAwX2F0dHJpYnV0ZV90YWJsZVtdID0KICN1bmRlZiBUQVJHRVRfUFJFRElD VF9ET0xPT1BfUAogI2RlZmluZSBUQVJHRVRfUFJFRElDVF9ET0xPT1BfUCBy czYwMDBfcHJlZGljdF9kb2xvb3BfcAogCisjdW5kZWYgVEFSR0VUX0hBVkVf Q09VTlRfUkVHX0RFQ1JfUAorI2RlZmluZSBUQVJHRVRfSEFWRV9DT1VOVF9S RUdfREVDUl9QIHRydWUKKwogI3VuZGVmIFRBUkdFVF9BVE9NSUNfQVNTSUdO X0VYUEFORF9GRU5WCiAjZGVmaW5lIFRBUkdFVF9BVE9NSUNfQVNTSUdOX0VY UEFORF9GRU5WIHJzNjAwMF9hdG9taWNfYXNzaWduX2V4cGFuZF9mZW52CiAK ZGlmZiAtLWdpdCBhL2djYy9kb2MvdG0udGV4aSBiL2djYy9kb2MvdG0udGV4 aQppbmRleCBjMmFhNGQwLi41NDc3Mjk0IDEwMDY0NAotLS0gYS9nY2MvZG9j L3RtLnRleGkKKysrIGIvZ2NjL2RvYy90bS50ZXhpCkBAIC0xMTYxOCw2ICsx MTYxOCwxNCBAQCBsb29wcywgYW5kIHdpbGwgaGVscCBpdm9wdHMgdG8gbWFr ZSBzb21lIGRlY2lzaW9ucy4KIFRoZSBkZWZhdWx0IHZlcnNpb24gb2YgdGhp cyBob29rIHJldHVybnMgZmFsc2UuCiBAZW5kIGRlZnR5cGVmbgogCitAZGVm dHlwZXZyIHtUYXJnZXQgSG9va30gYm9vbCBUQVJHRVRfSEFWRV9DT1VOVF9S RUdfREVDUl9QCitSZXR1cm4gdHJ1ZSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRz IGhhcmR3YXJlIGNvdW50IHJlZ2lzdGVyIGZvciBkZWNyZW1lbnQKK2FuZCBi cmFuY2guICBUaGlzIGNvdW50IHJlZ2lzdGVyIGNhbid0IGJlIHVzZWQgYXMg Z2VuZXJhbCByZWdpc3RlciBzaW5jZQorbW92aW5nIHRvL2Zyb20gYSBnZW5l cmFsIHJlZ2lzdGVyIGZyb20vdG8gaXQgaXMgdmVyeSBleHBlbnNpdmUuCitG b3IgdGhlIHRhcmdldHMgd2l0aCB0aGlzIHN1cHBvcnQsIGl2b3B0cyBjYW4g dGFrZSBkb2xvb3AgdXNlIGFzIHplcm8gY29zdC4KK1RoZSBkZWZhdWx0IHZh bHVlIGlzIGZhbHNlLgorQGVuZCBkZWZ0eXBldnIKKwogQGRlZnR5cGVmbiB7 VGFyZ2V0IEhvb2t9IGJvb2wgVEFSR0VUX0NBTl9VU0VfRE9MT09QX1AgKGNv bnN0IHdpZGVzdF9pbnQgQHZhcnsmaXRlcmF0aW9uc30sIGNvbnN0IHdpZGVz dF9pbnQgQHZhcnsmaXRlcmF0aW9uc19tYXh9LCB1bnNpZ25lZCBpbnQgQHZh cntsb29wX2RlcHRofSwgYm9vbCBAdmFye2VudGVyZWRfYXRfdG9wfSkKIFJl dHVybiB0cnVlIGlmIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBsb3ctb3Zlcmhl YWQgbG9vcHMgKEBjb2Rle2RvbG9vcF9lbmR9CiBhbmQgQGNvZGV7ZG9sb29w X2JlZ2lufSkgZm9yIGEgcGFydGljdWxhciBsb29wLiAgQHZhcntpdGVyYXRp b25zfSBnaXZlcyB0aGUKZGlmZiAtLWdpdCBhL2djYy9kb2MvdG0udGV4aS5p biBiL2djYy9kb2MvdG0udGV4aS5pbgppbmRleCBiNGQ1N2I4Li41ZjQzYjI3 IDEwMDY0NAotLS0gYS9nY2MvZG9jL3RtLnRleGkuaW4KKysrIGIvZ2NjL2Rv Yy90bS50ZXhpLmluCkBAIC03OTQ2LDYgKzc5NDYsOCBAQCB0byBieSBAdmFy e2NlX2luZm99LgogCiBAaG9vayBUQVJHRVRfUFJFRElDVF9ET0xPT1BfUAog CitAaG9vayBUQVJHRVRfSEFWRV9DT1VOVF9SRUdfREVDUl9QCisKIEBob29r IFRBUkdFVF9DQU5fVVNFX0RPTE9PUF9QCiAKIEBob29rIFRBUkdFVF9JTlZB TElEX1dJVEhJTl9ET0xPT1AKZGlmZiAtLWdpdCBhL2djYy90YXJnZXQuZGVm IGIvZ2NjL3RhcmdldC5kZWYKaW5kZXggNzFiNjk3Mi4uOGE2NGU1YiAxMDA2 NDQKLS0tIGEvZ2NjL3RhcmdldC5kZWYKKysrIGIvZ2NjL3RhcmdldC5kZWYK QEAgLTQyNDYsNiArNDI0NiwxNiBAQCBUaGUgZGVmYXVsdCB2ZXJzaW9uIG9m IHRoaXMgaG9vayByZXR1cm5zIGZhbHNlLiIsCiAgYm9vbCwgKHN0cnVjdCBs b29wICpsb29wKSwKICBkZWZhdWx0X3ByZWRpY3RfZG9sb29wX3ApCiAKK0RF RkhPT0tQT0QKKyhoYXZlX2NvdW50X3JlZ19kZWNyX3AsCisgIlJldHVybiB0 cnVlIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgaGFyZHdhcmUgY291bnQgcmVn aXN0ZXIgZm9yIGRlY3JlbWVudFxuXAorYW5kIGJyYW5jaC4gIFRoaXMgY291 bnQgcmVnaXN0ZXIgY2FuJ3QgYmUgdXNlZCBhcyBnZW5lcmFsIHJlZ2lzdGVy IHNpbmNlXG5cCittb3ZpbmcgdG8vZnJvbSBhIGdlbmVyYWwgcmVnaXN0ZXIg ZnJvbS90byBpdCBpcyB2ZXJ5IGV4cGVuc2l2ZS5cblwKK0ZvciB0aGUgdGFy Z2V0cyB3aXRoIHRoaXMgc3VwcG9ydCwgaXZvcHRzIGNhbiB0YWtlIGRvbG9v cCB1c2UgYXMgemVybyBjb3N0LlxuXAorVGhlIGRlZmF1bHQgdmFsdWUgaXMg ZmFsc2UuIiwKKyBib29sLCBmYWxzZSkKKworCiBERUZIT09LCiAoY2FuX3Vz ZV9kb2xvb3BfcCwKICAiUmV0dXJuIHRydWUgaWYgaXQgaXMgcG9zc2libGUg dG8gdXNlIGxvdy1vdmVyaGVhZCBsb29wcyAoQGNvZGV7ZG9sb29wX2VuZH1c blwKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3Nh L2l2b3B0cy1sdC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Ev aXZvcHRzLWx0LmMKaW5kZXggN2Q1ODU5Yi4uMzQ4NmUxYSAxMDA2NDQKLS0t IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvaXZvcHRzLWx0LmMK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvaXZvcHRzLWx0 LmMKQEAgLTE4LDUgKzE4LDUgQEAgZjEgKGNoYXIgKnAsIHVpbnRwdHJfdCBp LCB1aW50cHRyX3QgbikKIH0KIAogLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJQSEkiIDEgIml2b3B0cyIgfSB9ICovCi0vKiB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlBISSA8cF8iIDEgIml2 b3B0cyJ9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAicF9cWzAtOVxdKiA8IiAxICJpdm9wdHMiIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJQSEkgPHBfIiAxICJp dm9wdHMiIHsgdGFyZ2V0IHsgISBwb3dlcnBjKi0qLSogfSB9IH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwX1xbMC05 XF0qIDwiIDEgIml2b3B0cyIgeyB0YXJnZXQgeyAhIHBvd2VycGMqLSotKiB9 IH0gfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdHJlZS1zc2EtbG9vcC1pdm9w dHMuYyBiL2djYy90cmVlLXNzYS1sb29wLWl2b3B0cy5jCmluZGV4IDUzMGVh NGEuLjgwYTBmMTIgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXNzYS1sb29wLWl2 b3B0cy5jCisrKyBiL2djYy90cmVlLXNzYS1sb29wLWl2b3B0cy5jCkBAIC0z OTksNiArMzk5LDggQEAgc3RydWN0IGl2X2dyb3VwCiAgIHN0cnVjdCBjb3N0 X3BhaXIgKmNvc3RfbWFwOwogICAvKiBUaGUgc2VsZWN0ZWQgY2FuZGlkYXRl IGZvciB0aGUgZ3JvdXAuICAqLwogICBzdHJ1Y3QgaXZfY2FuZCAqc2VsZWN0 ZWQ7CisgIC8qIFRvIGluZGljYXRlIHRoaXMgaXMgYSBkb2xvb3AgdXNlIGdy b3VwLiAgKi8KKyAgYm9vbCBkb2xvb3BfcDsKICAgLyogVXNlcyBpbiB0aGUg Z3JvdXAuICAqLwogICB2ZWM8c3RydWN0IGl2X3VzZSAqPiB2dXNlczsKIH07 CkBAIC02MTIsNiArNjE0LDkgQEAgc3RydWN0IGl2b3B0c19kYXRhCiAKICAg LyogV2hldGhlciB0aGUgbG9vcCBib2R5IGNhbiBvbmx5IGJlIGV4aXRlZCB2 aWEgc2luZ2xlIGV4aXQuICAqLwogICBib29sIGxvb3Bfc2luZ2xlX2V4aXRf cDsKKworICAvKiBXaGV0aGVyIHRoZSBsb29wIGhhcyBkb2xvb3AgY29tcGFy aXNvbiB1c2UuICAqLworICBib29sIGRvbG9vcF91c2VfcDsKIH07CiAKIC8q IEFuIGFzc2lnbm1lbnQgb2YgaXYgY2FuZGlkYXRlcyB0byB1c2VzLiAgKi8K QEAgLTYzMCw2ICs2MzUsOSBAQCBzdHJ1Y3QgaXZfY2EKICAgLyogTnVtYmVy IG9mIHRpbWVzIGVhY2ggY2FuZGlkYXRlIGlzIHVzZWQuICAqLwogICB1bnNp Z25lZCAqbl9jYW5kX3VzZXM7CiAKKyAgLyogSG93IG1hbnkgZG9sb29wIHVz ZXMgZm9yIGVhY2ggY2FuZGlkYXRlcy4gICovCisgIHVuc2lnbmVkICpuX2Nh bmRfZG9sb29wX3VzZXM7CisKICAgLyogVGhlIGNhbmRpZGF0ZXMgdXNlZC4g ICovCiAgIGJpdG1hcCBjYW5kczsKIApAQCAtMTUyOCw2ICsxNTM2LDcgQEAg cmVjb3JkX2dyb3VwIChzdHJ1Y3QgaXZvcHRzX2RhdGEgKmRhdGEsIGVudW0g dXNlX3R5cGUgdHlwZSkKICAgZ3JvdXAtPnR5cGUgPSB0eXBlOwogICBncm91 cC0+cmVsYXRlZF9jYW5kcyA9IEJJVE1BUF9BTExPQyAoTlVMTCk7CiAgIGdy b3VwLT52dXNlcy5jcmVhdGUgKDEpOworICBncm91cC0+ZG9sb29wX3AgPSBm YWxzZTsKIAogICBkYXRhLT52Z3JvdXBzLnNhZmVfcHVzaCAoZ3JvdXApOwog ICByZXR1cm4gZ3JvdXA7CkBAIC0zNzI0LDcgKzM3MzMsNyBAQCBwcmVwYXJl X2RlY2xfcnRsICh0cmVlICpleHByX3AsIGludCAqd3MsIHZvaWQgKmRhdGEp CiAgICBTb21lIFJUTCBzcGVjaWZpYyBjaGVja3Mgc2VlbXMgdW5hYmxlIHRv IGJlIGNoZWNrZWQgaW4gZ2ltcGxlLCBpZiBhbnkgbmV3CiAgICBjaGVja3Mg b3IgZWFzeSBjaGVja3MgX2FyZV8gbWlzc2luZyBoZXJlLCBwbGVhc2UgYWRk IHRoZW0uICAqLwogCi1zdGF0aWMgYm9vbCBBVFRSSUJVVEVfVU5VU0VECitz dGF0aWMgYm9vbAogZ2VuZXJpY19wcmVkaWN0X2RvbG9vcF9wIChzdHJ1Y3Qg aXZvcHRzX2RhdGEgKmRhdGEpCiB7CiAgIHN0cnVjdCBsb29wICpsb29wID0g ZGF0YS0+Y3VycmVudF9sb29wOwpAQCAtNTI5MSw2ICs1MzAwLDE3IEBAIGRl dGVybWluZV9ncm91cF9pdl9jb3N0X2NvbmQgKHN0cnVjdCBpdm9wdHNfZGF0 YSAqZGF0YSwKICAgcmV0dXJuICFjb3N0LmluZmluaXRlX2Nvc3RfcCAoKTsK IH0KIAorLyogU2V0IG5vIGNvc3QgZm9yIHBhaXIgYmV0d2VlbiBkb2xvb3Ag aXYgdXNlIEdST1VQIGFuZCBpdiBjYW5kIENBTkQuICAqLworCitzdGF0aWMg dm9pZAorYWRqdXN0X2dyb3VwX2l2X2Nvc3RfZm9yX2RvbG9vcCAoc3RydWN0 IGl2b3B0c19kYXRhICpkYXRhLAorCQkJCSBzdHJ1Y3QgaXZfZ3JvdXAgKmdy b3VwLCBzdHJ1Y3QgaXZfY2FuZCAqY2FuZCkKK3sKKyAgc3RydWN0IGNvc3Rf cGFpciAqY3AgPSBnZXRfZ3JvdXBfaXZfY29zdCAoZGF0YSwgZ3JvdXAsIGNh bmQpOworICBnY2NfYXNzZXJ0IChjcCk7CisgIGNwLT5jb3N0ID0gbm9fY29z dDsKK30KKwogLyogRGV0ZXJtaW5lcyBjb3N0IG9mIGNvbXB1dGluZyB1c2Vz IGluIEdST1VQIHdpdGggQ0FORC4gIFJldHVybnMgZmFsc2UKICAgIGlmIFVT RSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgd2l0aCBDQU5ELiAgKi8KIApAQCAt NTMwOCw3ICs1MzI4LDEyIEBAIGRldGVybWluZV9ncm91cF9pdl9jb3N0IChz dHJ1Y3QgaXZvcHRzX2RhdGEgKmRhdGEsCiAgICAgICByZXR1cm4gZGV0ZXJt aW5lX2dyb3VwX2l2X2Nvc3RfYWRkcmVzcyAoZGF0YSwgZ3JvdXAsIGNhbmQp OwogCiAgICAgY2FzZSBVU0VfQ09NUEFSRToKLSAgICAgIHJldHVybiBkZXRl cm1pbmVfZ3JvdXBfaXZfY29zdF9jb25kIChkYXRhLCBncm91cCwgY2FuZCk7 CisgICAgICB7CisJYm9vbCBmaW5pdGVfY29zdF9wID0gZGV0ZXJtaW5lX2dy b3VwX2l2X2Nvc3RfY29uZCAoZGF0YSwgZ3JvdXAsIGNhbmQpOworCWlmIChk YXRhLT5kb2xvb3BfdXNlX3AgJiYgZ3JvdXAtPmRvbG9vcF9wICYmIGZpbml0 ZV9jb3N0X3ApCisJICBhZGp1c3RfZ3JvdXBfaXZfY29zdF9mb3JfZG9sb29w IChkYXRhLCBncm91cCwgY2FuZCk7CisJcmV0dXJuIGZpbml0ZV9jb3N0X3A7 CisgICAgICB9CiAKICAgICBkZWZhdWx0OgogICAgICAgZ2NjX3VucmVhY2hh YmxlICgpOwpAQCAtNTgyOSwxMSArNTg1NCwxNSBAQCBpdl9jYV9zZXRfbm9f Y3AgKHN0cnVjdCBpdm9wdHNfZGF0YSAqZGF0YSwgc3RydWN0IGl2X2NhICpp dnMsCiAgIGl2cy0+Y2FuZF9mb3JfZ3JvdXBbZ2lkXSA9IE5VTEw7CiAgIGl2 cy0+bl9jYW5kX3VzZXNbY2lkXS0tOwogCisgIGlmIChncm91cC0+ZG9sb29w X3ApCisgICAgaXZzLT5uX2NhbmRfZG9sb29wX3VzZXNbY2lkXS0tOworICBl bHNlIGlmIChpdnMtPm5fY2FuZF91c2VzW2NpZF0gPT0gaXZzLT5uX2NhbmRf ZG9sb29wX3VzZXNbY2lkXSkKKyAgICBpdnMtPmNhbmRfY29zdCAtPSBjcC0+ Y2FuZC0+Y29zdDsKKwogICBpZiAoaXZzLT5uX2NhbmRfdXNlc1tjaWRdID09 IDApCiAgICAgewogICAgICAgYml0bWFwX2NsZWFyX2JpdCAoaXZzLT5jYW5k cywgY2lkKTsKICAgICAgIGl2cy0+bl9jYW5kcy0tOwotICAgICAgaXZzLT5j YW5kX2Nvc3QgLT0gY3AtPmNhbmQtPmNvc3Q7CiAgICAgICBpdl9jYV9zZXRf cmVtb3ZlX2ludnMgKGl2cywgY3AtPmNhbmQtPmludl92YXJzLCBpdnMtPm5f aW52X3Zhcl91c2VzKTsKICAgICAgIGl2X2NhX3NldF9yZW1vdmVfaW52cyAo aXZzLCBjcC0+Y2FuZC0+aW52X2V4cHJzLCBpdnMtPm5faW52X2V4cHJfdXNl cyk7CiAgICAgfQpAQCAtNTg4NiwxMSArNTkxNSwxNCBAQCBpdl9jYV9zZXRf Y3AgKHN0cnVjdCBpdm9wdHNfZGF0YSAqZGF0YSwgc3RydWN0IGl2X2NhICpp dnMsCiAgICAgICBpdnMtPmJhZF9ncm91cHMtLTsKICAgICAgIGl2cy0+Y2Fu ZF9mb3JfZ3JvdXBbZ2lkXSA9IGNwOwogICAgICAgaXZzLT5uX2NhbmRfdXNl c1tjaWRdKys7CisgICAgICBpZiAoZ3JvdXAtPmRvbG9vcF9wKQorCWl2cy0+ bl9jYW5kX2RvbG9vcF91c2VzW2NpZF0rKzsKKyAgICAgIGVsc2UgaWYgKGl2 cy0+bl9jYW5kX3VzZXNbY2lkXSA9PSAoaXZzLT5uX2NhbmRfZG9sb29wX3Vz ZXNbY2lkXSArIDEpKQorCWl2cy0+Y2FuZF9jb3N0ICs9IGNwLT5jYW5kLT5j b3N0OwogICAgICAgaWYgKGl2cy0+bl9jYW5kX3VzZXNbY2lkXSA9PSAxKQog CXsKIAkgIGJpdG1hcF9zZXRfYml0IChpdnMtPmNhbmRzLCBjaWQpOwogCSAg aXZzLT5uX2NhbmRzKys7Ci0JICBpdnMtPmNhbmRfY29zdCArPSBjcC0+Y2Fu ZC0+Y29zdDsKIAkgIGl2X2NhX3NldF9hZGRfaW52cyAoaXZzLCBjcC0+Y2Fu ZC0+aW52X3ZhcnMsIGl2cy0+bl9pbnZfdmFyX3VzZXMpOwogCSAgaXZfY2Ff c2V0X2FkZF9pbnZzIChpdnMsIGNwLT5jYW5kLT5pbnZfZXhwcnMsIGl2cy0+ bl9pbnZfZXhwcl91c2VzKTsKIAl9CkBAIC02MDk4LDYgKzYxMzAsNyBAQCBp dl9jYV9uZXcgKHN0cnVjdCBpdm9wdHNfZGF0YSAqZGF0YSkKICAgbnctPmNh bmRfZm9yX2dyb3VwID0gWENORVdWRUMgKHN0cnVjdCBjb3N0X3BhaXIgKiwK IAkJCQkgZGF0YS0+dmdyb3Vwcy5sZW5ndGggKCkpOwogICBudy0+bl9jYW5k X3VzZXMgPSBYQ05FV1ZFQyAodW5zaWduZWQsIGRhdGEtPnZjYW5kcy5sZW5n dGggKCkpOworICBudy0+bl9jYW5kX2RvbG9vcF91c2VzID0gWENORVdWRUMg KHVuc2lnbmVkLCBkYXRhLT52Y2FuZHMubGVuZ3RoICgpKTsKICAgbnctPmNh bmRzID0gQklUTUFQX0FMTE9DIChOVUxMKTsKICAgbnctPm5fY2FuZHMgPSAw OwogICBudy0+bl9pbnZzID0gMDsKQEAgLTYxMTcsNiArNjE1MCw3IEBAIGl2 X2NhX2ZyZWUgKHN0cnVjdCBpdl9jYSAqKml2cykKIHsKICAgZnJlZSAoKCpp dnMpLT5jYW5kX2Zvcl9ncm91cCk7CiAgIGZyZWUgKCgqaXZzKS0+bl9jYW5k X3VzZXMpOworICBmcmVlICgoKml2cyktPm5fY2FuZF9kb2xvb3BfdXNlcyk7 CiAgIEJJVE1BUF9GUkVFICgoKml2cyktPmNhbmRzKTsKICAgZnJlZSAoKCpp dnMpLT5uX2ludl92YXJfdXNlcyk7CiAgIGZyZWUgKCgqaXZzKS0+bl9pbnZf ZXhwcl91c2VzKTsKQEAgLTc1NjgsNiArNzYwMiw0NyBAQCBkZXRlcm1pbmVf c2NhbGluZ19mYWN0b3IgKHN0cnVjdCBpdm9wdHNfZGF0YSAqZGF0YSwgYmFz aWNfYmxvY2sgKmJvZHkpCiAgICAgfQogfQogCisvKiBGaW5kIGRvbG9vcCBj b21wYXJpc29uIHVzZSBhbmQgc2V0IGl0cyBkb2xvb3BfcCBvbiBpZiBmb3Vu ZC4gICovCisKK3N0YXRpYyBib29sCitmaW5kX2RvbG9vcF91c2UgKHN0cnVj dCBpdm9wdHNfZGF0YSAqZGF0YSkKK3sKKyAgc3RydWN0IGxvb3AgKmxvb3Ag PSBkYXRhLT5jdXJyZW50X2xvb3A7CisKKyAgZm9yICh1bnNpZ25lZCBpID0g MDsgaSA8IGRhdGEtPnZncm91cHMubGVuZ3RoICgpOyBpKyspCisgICAgewor ICAgICAgc3RydWN0IGl2X2dyb3VwICpncm91cCA9IGRhdGEtPnZncm91cHNb aV07CisgICAgICBpZiAoZ3JvdXAtPnR5cGUgPT0gVVNFX0NPTVBBUkUpCisJ eworCSAgZ2NjX2Fzc2VydCAoZ3JvdXAtPnZ1c2VzLmxlbmd0aCAoKSA9PSAx KTsKKwkgIHN0cnVjdCBpdl91c2UgKnVzZSA9IGdyb3VwLT52dXNlc1swXTsK KwkgIGdpbXBsZSAqc3RtdCA9IHVzZS0+c3RtdDsKKwkgIGlmIChnaW1wbGVf Y29kZSAoc3RtdCkgPT0gR0lNUExFX0NPTkQpCisJICAgIHsKKwkgICAgICBi YXNpY19ibG9jayBiYiA9IGdpbXBsZV9iYiAoc3RtdCk7CisJICAgICAgZWRn ZSB0cnVlX2VkZ2UsIGZhbHNlX2VkZ2U7CisJICAgICAgZXh0cmFjdF90cnVl X2ZhbHNlX2VkZ2VzX2Zyb21fYmxvY2sgKGJiLCAmdHJ1ZV9lZGdlLCAmZmFs c2VfZWRnZSk7CisJICAgICAgLyogVGhpcyBjb21wYXJpc29uIGlzIHVzZWQg Zm9yIGxvb3AgbGF0Y2guICBSZXF1aXJlIGxhdGNoIGlzIGVtcHR5CisJCSBm b3Igbm93LiAgKi8KKwkgICAgICBpZiAoKGxvb3AtPmxhdGNoID09IHRydWVf ZWRnZS0+ZGVzdAorCQkgICB8fCBsb29wLT5sYXRjaCA9PSBmYWxzZV9lZGdl LT5kZXN0KQorCQkgICYmIGVtcHR5X2Jsb2NrX3AgKGxvb3AtPmxhdGNoKSkK KwkJeworCQkgIGdyb3VwLT5kb2xvb3BfcCA9IHRydWU7CisJCSAgaWYgKGR1 bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxTKSkKKwkJICAg IHsKKwkJICAgICAgZnByaW50ZiAoZHVtcF9maWxlLCAiRG9sb29wIGNtcCBp diB1c2U6ICIpOworCQkgICAgICBwcmludF9naW1wbGVfc3RtdCAoZHVtcF9m aWxlLCBzdG10LCBUREZfREVUQUlMUyk7CisJCSAgICB9CisJCSAgcmV0dXJu IHRydWU7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgcmV0dXJuIGZh bHNlOworfQorCiAvKiBPcHRpbWl6ZXMgdGhlIExPT1AuICBSZXR1cm5zIHRy dWUgaWYgYW55dGhpbmcgY2hhbmdlZC4gICovCiAKIHN0YXRpYyBib29sCkBA IC03NTgwLDYgKzc2NTUsNyBAQCB0cmVlX3NzYV9pdl9vcHRpbWl6ZV9sb29w IChzdHJ1Y3QgaXZvcHRzX2RhdGEgKmRhdGEsIHN0cnVjdCBsb29wICpsb29w LAogICBiYXNpY19ibG9jayAqYm9keTsKIAogICBnY2NfYXNzZXJ0ICghZGF0 YS0+bml0ZXJzKTsKKyAgZGF0YS0+ZG9sb29wX3VzZV9wID0gZmFsc2U7CiAg IGRhdGEtPmN1cnJlbnRfbG9vcCA9IGxvb3A7CiAgIGRhdGEtPmxvb3BfbG9j ID0gZmluZF9sb29wX2xvY2F0aW9uIChsb29wKS5nZXRfbG9jYXRpb25fdCAo KTsKICAgZGF0YS0+c3BlZWQgPSBvcHRpbWl6ZV9sb29wX2Zvcl9zcGVlZF9w IChsb29wKTsKQEAgLTc2MjUsNiArNzcwMSwxOSBAQCB0cmVlX3NzYV9pdl9v cHRpbWl6ZV9sb29wIChzdHJ1Y3QgaXZvcHRzX2RhdGEgKmRhdGEsIHN0cnVj dCBsb29wICpsb29wLAogICAvKiBGaW5kcyBjYW5kaWRhdGVzIGZvciB0aGUg aW5kdWN0aW9uIHZhcmlhYmxlcyAoaXRlbSAyKS4gICovCiAgIGZpbmRfaXZf Y2FuZGlkYXRlcyAoZGF0YSk7CiAKKyAgaWYgKGZsYWdfYnJhbmNoX29uX2Nv dW50X3JlZyAmJiB0YXJnZXRtLmhhdmVfY291bnRfcmVnX2RlY3JfcAorICAg ICAgJiYgZ2VuZXJpY19wcmVkaWN0X2RvbG9vcF9wIChkYXRhKSkKKyAgICB7 CisgICAgICBkYXRhLT5kb2xvb3BfdXNlX3AgPSBmaW5kX2RvbG9vcF91c2Ug KGRhdGEpOworICAgICAgaWYgKGRhdGEtPmRvbG9vcF91c2VfcCAmJiBkdW1w X2ZpbGUgJiYgKGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykpCisJeworCSAg ZnByaW50ZiAoZHVtcF9maWxlLAorCQkgICAiUHJlZGljdCBsb29wICVkIGNh biBwZXJmb3JtIGRvbG9vcCBvcHRpbWl6YXRpb24gbGF0ZXIuXG4iLAorCQkg ICBsb29wLT5udW0pOworCSAgZmxvd19sb29wX2R1bXAgKGxvb3AsIGR1bXBf ZmlsZSwgTlVMTCwgMSk7CisJfQorICAgIH0KKwogICAvKiBDYWxjdWxhdGVz IHRoZSBjb3N0cyAoaXRlbSAzLCBwYXJ0IDEpLiAgKi8KICAgZGV0ZXJtaW5l X2l2X2Nvc3RzIChkYXRhKTsKICAgZGV0ZXJtaW5lX2dyb3VwX2l2X2Nvc3Rz IChkYXRhKTsK --------------8EC9E0E46430F4660FAC6924--