From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 37976 invoked by alias); 3 Nov 2017 12:39:41 -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 37886 invoked by uid 89); 3 Nov 2017 12:39:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=resort X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0081.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 03 Nov 2017 12:39:36 +0000 Received: from DB5PR0801MB2742.eurprd08.prod.outlook.com (10.166.176.26) by DB5PR0801MB2744.eurprd08.prod.outlook.com (10.166.176.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.13; Fri, 3 Nov 2017 12:39:33 +0000 Received: from DB5PR0801MB2742.eurprd08.prod.outlook.com ([10.166.176.26]) by DB5PR0801MB2742.eurprd08.prod.outlook.com ([10.166.176.26]) with mapi id 15.20.0197.013; Fri, 3 Nov 2017 12:39:33 +0000 From: Bin Cheng To: "gcc-patches@gcc.gnu.org" CC: nd Subject: [PATCH PR82726][1/2]Revert previous fixes for PR70754 and PR79663 Date: Fri, 03 Nov 2017 12:39:00 -0000 Message-ID: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Bin.Cheng@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB5PR0801MB2744;6:wDSewqT/n/thDedUbqe+o3/1hNyud6Gr9R36dc9ReajtHNsfS7EFUSBll+HajvkEqkFsnOThdAmDRXb4MLhRp56+ZfgiL9BtzOgP41w2K1ziOg6ODfLWeelB4fFVNbx5RV+xCEYVGwAYx4zxXoyjMCoNREvZ6M3ffV69JzTDnkbQtJCWazCq5HV+iChIWITxNg1lQrHCTnzUpaO07ZCg0zAlGIHGlfLNDF7a9NWEdIWhSnagQPd+6kT+bIUq6uE7EHIeu0qhPqaf1LGxWN/+SWz1T85Ei/RiMmSPJlxX9zPEMpyjhDVJNdCDyhylerh8jM6x316WnQ+KSMSzOnVK+zE1CHbCwGTXrxBT4Btj1Zc=;5:FZ8gZY2mDzJh4lzZSScu6e/ejblYEOjX86Y8gSOWw5PPCEHWONQUmzuK/s0RP2TJMSPkEbcgZWGOWTgpd1x5YYevS++4RFz34Z8TA7ph0sY1JhKoN5a1gXEvG6eggh3G8egjD7eChtEIt3BGY3Q8s5x25L5ECbLEWAqii7/oRmY=;24:dQLTteDQ2v3j0uWX1DZay80F2Qp7eUKeiAUqPoPCOHUfgA9Z8KPwv2Xv++ZpoObOUrrWVyKp2LkXhn1aB2+nggy5sJPb0vdL5UQypxXvrcI=;7:SC1yhTTk1Bou0eMHXKCo3a02hXaD+CO2zFOc/4QWoJYwQTvIl8jl0Bbz5yREGrQ3vnJZvOjh5Dh3cXxLyR3Y6EvNyi5f6DFjEJ+xbEE0MP2jMbRfTJBHe5j34IfA8gevHSt1zabOo6e4DEQgAOL1DFpbNDgzGyM/CRstNjTP+9MR0y9VOnHMcbX8J50aedv0cbejPYhvUpS9ZuJpp+1aPD1a2AkB9JMwkHhgE2q+qbTpT/siMYJ1Z8cv2Dlp7Fno x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 2b12ca35-2d19-4c4a-8e42-08d522b7ef6c x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199)(49563074);SRVR:DB5PR0801MB2744; x-ms-traffictypediagnostic: DB5PR0801MB2744: nodisclaimer: True x-exchange-antispam-report-test: UriScan:(180628864354917); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(2401047)(8121501046)(5005006)(3002001)(3231021)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123558100)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB5PR0801MB2744;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB5PR0801MB2744; x-forefront-prvs: 0480A51D4A x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(346002)(376002)(377424004)(189002)(199003)(81156014)(81166006)(316002)(50986999)(33656002)(189998001)(25786009)(8676002)(68736007)(305945005)(66066001)(7736002)(3660700001)(8936002)(4326008)(478600001)(2501003)(3280700002)(101416001)(99936001)(99286004)(54356999)(97736004)(6116002)(106356001)(7696004)(2900100001)(55016002)(72206003)(9686003)(74316002)(3846002)(102836003)(53936002)(77096006)(5660300001)(105586002)(14454004)(5640700003)(6506006)(6436002)(86362001)(2906002)(6916009)(2351001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR0801MB2744;H:DB5PR0801MB2742.eurprd08.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_DB5PR0801MB2742F2AE7A493621CF0C35B6E75D0DB5PR0801MB2742_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b12ca35-2d19-4c4a-8e42-08d522b7ef6c X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2017 12:39:33.2927 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR0801MB2744 X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg00182.txt.bz2 --_002_DB5PR0801MB2742F2AE7A493621CF0C35B6E75D0DB5PR0801MB2742_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 2018 Hi, When fixing PR70754, I thought the issue only happens for ZERO-length chain= s. Well, that's apparently not true with PR82726. The whole story is, with chain combination/re-association, new stmts may be created/inserted at position not dominating following uses. This happens in two scenarios: 1) Zero length chains, as in PR70754. 2) Non-zero chains with multiple zero distance references. PR82726 falls in case 2). Because zero distance references are root of the chain, they don't inherit values from loop carried PHIs. In code generatio= n, we still need to be careful not inserting use before definitions. Previous fix to PR70754 tries to find dominance position for insertion when combining all references. I could do the similar thing on top of that fix, but it would be inefficient/complicated because we should only do that for zero distance references in a non-zero length combined chain. This patch set fixes both PRs in the opposite way: Instead of finding domin= ance insertion position for root reference, we re-sort zero-distance references = of combined chain by their position information so that new root reference must dominate others. This should be more efficient because we avoid function c= all to stmt_dominates_stmt_p. This is the first patch reverting r244815 and r245689. Bootstrap and test on x86_64 and AArch64 in patch set. Is it OK? Thanks, bin 2017-11-02 Bin Cheng PR tree-optimization/82726 Revert 2017-01-23 Bin Cheng PR tree-optimization/70754 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert combined stmt before it if not NULL. (combine_chains): Process refs reversely and compute dominance point for root ref. Revert 2017-02-23 Bin Cheng PR tree-optimization/79663 * tree-predcom.c (combine_chains): Process refs in reverse order only for ZERO length chains, and add explaining comment.= --_002_DB5PR0801MB2742F2AE7A493621CF0C35B6E75D0DB5PR0801MB2742_ Content-Type: text/x-patch; name="0001-revert-244815-245689.txt.patch" Content-Description: 0001-revert-244815-245689.txt.patch Content-Disposition: attachment; filename="0001-revert-244815-245689.txt.patch"; size=5483; creation-date="Fri, 03 Nov 2017 12:38:15 GMT"; modification-date="Fri, 03 Nov 2017 12:38:15 GMT" Content-Transfer-Encoding: base64 Content-length: 7434 RnJvbSA0MDhjODZjMzM2NzBjZTY0ZTk4NzJmYTlkNGNjNjZmZTBiM2JmZmE0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCaW4gQ2hlbmcgPGJp bmNoZTAxQGUxMDg0NTEtbGluLmNhbWJyaWRnZS5hcm0uY29tPgpEYXRlOiBX ZWQsIDEgTm92IDIwMTcgMTI6NTM6NDMgKzAwMDAKU3ViamVjdDogW1BBVENI IDEvMl0gcmV2ZXJ0LTI0NDgxNS0yNDU2ODkudHh0CgotLS0KIGdjYy90cmVl LXByZWRjb20uYyB8IDY0ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEz IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2djYy90cmVlLXByZWRjb20uYyBiL2djYy90cmVlLXByZWRjb20uYwppbmRl eCBmZGIzMmYxLi4yNGQ3YzljIDEwMDY0NAotLS0gYS9nY2MvdHJlZS1wcmVk Y29tLmMKKysrIGIvZ2NjL3RyZWUtcHJlZGNvbS5jCkBAIC0yNTIwLDExICsy NTIwLDEwIEBAIHJlbW92ZV9uYW1lX2Zyb21fb3BlcmF0aW9uIChnaW1wbGUg KnN0bXQsIHRyZWUgb3ApCiB9CiAKIC8qIFJlYXNzb2NpYXRlcyB0aGUgZXhw cmVzc2lvbiBpbiB0aGF0IE5BTUUxIGFuZCBOQU1FMiBhcmUgdXNlZCBzbyB0 aGF0IHRoZXkKLSAgIGFyZSBjb21iaW5lZCBpbiBhIHNpbmdsZSBzdGF0ZW1l bnQsIGFuZCByZXR1cm5zIHRoaXMgc3RhdGVtZW50LiAgTm90ZSB0aGUKLSAg IHN0YXRlbWVudCBpcyBpbnNlcnRlZCBiZWZvcmUgSU5TRVJUX0JFRk9SRSBp ZiBpdCdzIG5vdCBOVUxMLiAgKi8KKyAgIGFyZSBjb21iaW5lZCBpbiBhIHNp bmdsZSBzdGF0ZW1lbnQsIGFuZCByZXR1cm5zIHRoaXMgc3RhdGVtZW50LiAg Ki8KIAogc3RhdGljIGdpbXBsZSAqCi1yZWFzc29jaWF0ZV90b190aGVfc2Ft ZV9zdG10ICh0cmVlIG5hbWUxLCB0cmVlIG5hbWUyLCBnaW1wbGUgKmluc2Vy dF9iZWZvcmUpCityZWFzc29jaWF0ZV90b190aGVfc2FtZV9zdG10ICh0cmVl IG5hbWUxLCB0cmVlIG5hbWUyKQogewogICBnaW1wbGUgKnN0bXQxLCAqc3Rt dDIsICpyb290MSwgKnJvb3QyLCAqczEsICpzMjsKICAgZ2Fzc2lnbiAqbmV3 X3N0bXQsICp0bXBfc3RtdDsKQEAgLTI1ODEsMTIgKzI1ODAsNiBAQCByZWFz c29jaWF0ZV90b190aGVfc2FtZV9zdG10ICh0cmVlIG5hbWUxLCB0cmVlIG5h bWUyLCBnaW1wbGUgKmluc2VydF9iZWZvcmUpCiAgIHZhciA9IGNyZWF0ZV90 bXBfcmVnICh0eXBlLCAicHJlZHJlYXN0bXAiKTsKICAgbmV3X25hbWUgPSBt YWtlX3NzYV9uYW1lICh2YXIpOwogICBuZXdfc3RtdCA9IGdpbXBsZV9idWls ZF9hc3NpZ24gKG5ld19uYW1lLCBjb2RlLCBuYW1lMSwgbmFtZTIpOwotICBp ZiAoaW5zZXJ0X2JlZm9yZSAmJiBzdG10X2RvbWluYXRlc19zdG10X3AgKGlu c2VydF9iZWZvcmUsIHMxKSkKLSAgICBic2kgPSBnc2lfZm9yX3N0bXQgKGlu c2VydF9iZWZvcmUpOwotICBlbHNlCi0gICAgYnNpID0gZ3NpX2Zvcl9zdG10 IChzMSk7Ci0KLSAgZ3NpX2luc2VydF9iZWZvcmUgKCZic2ksIG5ld19zdG10 LCBHU0lfU0FNRV9TVE1UKTsKIAogICB2YXIgPSBjcmVhdGVfdG1wX3JlZyAo dHlwZSwgInByZWRyZWFzdG1wIik7CiAgIHRtcF9uYW1lID0gbWFrZV9zc2Ff bmFtZSAodmFyKTsKQEAgLTI2MDMsNiArMjU5Niw3IEBAIHJlYXNzb2NpYXRl X3RvX3RoZV9zYW1lX3N0bXQgKHRyZWUgbmFtZTEsIHRyZWUgbmFtZTIsIGdp bXBsZSAqaW5zZXJ0X2JlZm9yZSkKICAgczEgPSBnc2lfc3RtdCAoYnNpKTsK ICAgdXBkYXRlX3N0bXQgKHMxKTsKIAorICBnc2lfaW5zZXJ0X2JlZm9yZSAo JmJzaSwgbmV3X3N0bXQsIEdTSV9TQU1FX1NUTVQpOwogICBnc2lfaW5zZXJ0 X2JlZm9yZSAoJmJzaSwgdG1wX3N0bXQsIEdTSV9TQU1FX1NUTVQpOwogCiAg IHJldHVybiBuZXdfc3RtdDsKQEAgLTI2MTEsMTEgKzI2MDUsMTAgQEAgcmVh c3NvY2lhdGVfdG9fdGhlX3NhbWVfc3RtdCAodHJlZSBuYW1lMSwgdHJlZSBu YW1lMiwgZ2ltcGxlICppbnNlcnRfYmVmb3JlKQogLyogUmV0dXJucyB0aGUg c3RhdGVtZW50IHRoYXQgY29tYmluZXMgcmVmZXJlbmNlcyBSMSBhbmQgUjIu ICBJbiBjYXNlIFIxCiAgICBhbmQgUjIgYXJlIG5vdCB1c2VkIGluIHRoZSBz YW1lIHN0YXRlbWVudCwgYnV0IHRoZXkgYXJlIHVzZWQgd2l0aCBhbgogICAg YXNzb2NpYXRpdmUgYW5kIGNvbW11dGF0aXZlIG9wZXJhdGlvbiBpbiB0aGUg c2FtZSBleHByZXNzaW9uLCByZWFzc29jaWF0ZQotICAgdGhlIGV4cHJlc3Np b24gc28gdGhhdCB0aGV5IGFyZSB1c2VkIGluIHRoZSBzYW1lIHN0YXRlbWVu dC4gIFRoZSBjb21iaW5lZAotICAgc3RhdGVtZW50IGlzIGluc2VydGVkIGJl Zm9yZSBJTlNFUlRfQkVGT1JFIGlmIGl0J3Mgbm90IE5VTEwuICAqLworICAg dGhlIGV4cHJlc3Npb24gc28gdGhhdCB0aGV5IGFyZSB1c2VkIGluIHRoZSBz YW1lIHN0YXRlbWVudC4gICovCiAKIHN0YXRpYyBnaW1wbGUgKgotc3RtdF9j b21iaW5pbmdfcmVmcyAoZHJlZiByMSwgZHJlZiByMiwgZ2ltcGxlICppbnNl cnRfYmVmb3JlKQorc3RtdF9jb21iaW5pbmdfcmVmcyAoZHJlZiByMSwgZHJl ZiByMikKIHsKICAgZ2ltcGxlICpzdG10MSwgKnN0bXQyOwogICB0cmVlIG5h bWUxID0gbmFtZV9mb3JfcmVmIChyMSk7CkBAIC0yNjI2LDcgKzI2MTksNyBA QCBzdG10X2NvbWJpbmluZ19yZWZzIChkcmVmIHIxLCBkcmVmIHIyLCBnaW1w bGUgKmluc2VydF9iZWZvcmUpCiAgIGlmIChzdG10MSA9PSBzdG10MikKICAg ICByZXR1cm4gc3RtdDE7CiAKLSAgcmV0dXJuIHJlYXNzb2NpYXRlX3RvX3Ro ZV9zYW1lX3N0bXQgKG5hbWUxLCBuYW1lMiwgaW5zZXJ0X2JlZm9yZSk7Cisg IHJldHVybiByZWFzc29jaWF0ZV90b190aGVfc2FtZV9zdG10IChuYW1lMSwg bmFtZTIpOwogfQogCiAvKiBUcmllcyB0byBjb21iaW5lIGNoYWlucyBDSDEg YW5kIENIMiB0b2dldGhlci4gIElmIHRoaXMgc3VjY2VlZHMsIHRoZQpAQCAt MjYzOSw3ICsyNjMyLDcgQEAgY29tYmluZV9jaGFpbnMgKGNoYWluX3AgY2gx LCBjaGFpbl9wIGNoMikKICAgZW51bSB0cmVlX2NvZGUgb3AgPSBFUlJPUl9N QVJLOwogICBib29sIHN3YXAgPSBmYWxzZTsKICAgY2hhaW5fcCBuZXdfY2hh aW47Ci0gIGludCBpLCBqLCBudW07CisgIHVuc2lnbmVkIGk7CiAgIGdpbXBs ZSAqcm9vdF9zdG10OwogICB0cmVlIHJzbHRfdHlwZSA9IE5VTExfVFJFRTsK IApAQCAtMjY2MSw5ICsyNjU0LDYgQEAgY29tYmluZV9jaGFpbnMgKGNoYWlu X3AgY2gxLCBjaGFpbl9wIGNoMikKIAlyZXR1cm4gTlVMTDsKICAgICB9CiAK LSAgY2gxLT5jb21iaW5lZCA9IHRydWU7Ci0gIGNoMi0+Y29tYmluZWQgPSB0 cnVlOwotCiAgIGlmIChzd2FwKQogICAgIHN0ZDo6c3dhcCAoY2gxLCBjaDIp OwogCkBAIC0yNjc1LDQ1ICsyNjY1LDE1IEBAIGNvbWJpbmVfY2hhaW5zIChj aGFpbl9wIGNoMSwgY2hhaW5fcCBjaDIpCiAgIG5ld19jaGFpbi0+cnNsdF90 eXBlID0gcnNsdF90eXBlOwogICBuZXdfY2hhaW4tPmxlbmd0aCA9IGNoMS0+ bGVuZ3RoOwogCi0gIGdpbXBsZSAqaW5zZXJ0ID0gTlVMTDsKLSAgbnVtID0g Y2gxLT5yZWZzLmxlbmd0aCAoKTsKLSAgaSA9IChuZXdfY2hhaW4tPmxlbmd0 aCA9PSAwKSA/IG51bSAtIDEgOiAwOwotICBqID0gKG5ld19jaGFpbi0+bGVu Z3RoID09IDApID8gLTEgOiAxOwotICAvKiBGb3IgWkVSTyBsZW5ndGggY2hh aW4sIHByb2Nlc3MgcmVmcyBpbiByZXZlcnNlIG9yZGVyIHNvIHRoYXQgZG9t aW5hbnQKLSAgICAgcG9zaXRpb24gaXMgcmVhZHkgd2hlbiBpdCBjb21lcyB0 byB0aGUgcm9vdCByZWYuCi0gICAgIEZvciBub24tWkVSTyBsZW5ndGggY2hh aW4sIHByb2Nlc3MgcmVmcyBpbiBvcmRlci4gIFNlZSBQUjc5NjYzLiAgKi8K LSAgZm9yICg7IG51bSA+IDA7IG51bS0tLCBpICs9IGopCi0gICAgewotICAg ICAgcjEgPSBjaDEtPnJlZnNbaV07Ci0gICAgICByMiA9IGNoMi0+cmVmc1tp XTsKKyAgZm9yIChpID0gMDsgKGNoMS0+cmVmcy5pdGVyYXRlIChpLCAmcjEp CisJICAgICAgICYmIGNoMi0+cmVmcy5pdGVyYXRlIChpLCAmcjIpKTsgaSsr KQorICAgIHsKICAgICAgIG53ID0gWENORVcgKHN0cnVjdCBkcmVmX2QpOwor ICAgICAgbnctPnN0bXQgPSBzdG10X2NvbWJpbmluZ19yZWZzIChyMSwgcjIp OwogICAgICAgbnctPmRpc3RhbmNlID0gcjEtPmRpc3RhbmNlOwogCi0gICAg ICAvKiBGb3IgWkVSTyBsZW5ndGggY2hhaW4sIGluc2VydCBjb21iaW5lZCBz dG10IG9mIHJvb3QgcmVmIGF0IGRvbWluYW50Ci0JIHBvc2l0aW9uLiAgKi8K LSAgICAgIG53LT5zdG10ID0gc3RtdF9jb21iaW5pbmdfcmVmcyAocjEsIHIy LCBpID09IDAgPyBpbnNlcnQgOiBOVUxMKTsKLSAgICAgIC8qIEZvciBaRVJP IGxlbmd0aCBjaGFpbiwgcmVjb3JkIGRvbWluYW50IHBvc2l0aW9uIHdoZXJl IGNvbWJpbmVkIHN0bXQKLQkgb2Ygcm9vdCByZWYgc2hvdWxkIGJlIGluc2Vy dGVkLiAgSW4gdGhpcyBjYXNlLCB0aG91Z2ggYWxsIHJvb3QgcmVmcwotCSBk b21pbmF0ZSBmb2xsb3dpbmcgb25lcywgaXQncyBwb3NzaWJsZSB0aGF0IGNv bWJpbmVkIHN0bXQgZG9lc24ndC4KLQkgU2VlIFBSNzA3NTQuICAqLwotICAg ICAgaWYgKG5ld19jaGFpbi0+bGVuZ3RoID09IDAKLQkgICYmIChpbnNlcnQg PT0gTlVMTCB8fCBzdG10X2RvbWluYXRlc19zdG10X3AgKG53LT5zdG10LCBp bnNlcnQpKSkKLQlpbnNlcnQgPSBudy0+c3RtdDsKLQogICAgICAgbmV3X2No YWluLT5yZWZzLnNhZmVfcHVzaCAobncpOwogICAgIH0KLSAgaWYgKG5ld19j aGFpbi0+bGVuZ3RoID09IDApCi0gICAgewotICAgICAgLyogUmVzdG9yZSB0 aGUgb3JkZXIgZm9yIFpFUk8gbGVuZ3RoIGNoYWluJ3MgcmVmcy4gICovCi0g ICAgICBudW0gPSBuZXdfY2hhaW4tPnJlZnMubGVuZ3RoICgpID4+IDE7Ci0g ICAgICBmb3IgKGkgPSAwLCBqID0gbmV3X2NoYWluLT5yZWZzLmxlbmd0aCAo KSAtIDE7IGkgPCBudW07IGkrKywgai0tKQotCXN0ZDo6c3dhcCAobmV3X2No YWluLT5yZWZzW2ldLCBuZXdfY2hhaW4tPnJlZnNbal0pOwotCi0gICAgICAv KiBGb3IgWkVSTyBsZW5ndGggY2hhaW4sIGhhc19tYXhfdXNlX2FmdGVyIG11 c3QgYmUgdHJ1ZSBzaW5jZSByb290Ci0JIGNvbWJpbmVkIHN0bXQgbXVzdCBk b21pbmF0ZXMgb3RoZXJzLiAgKi8KLSAgICAgIG5ld19jaGFpbi0+aGFzX21h eF91c2VfYWZ0ZXIgPSB0cnVlOwotICAgICAgcmV0dXJuIG5ld19jaGFpbjsK LSAgICB9CiAKICAgbmV3X2NoYWluLT5oYXNfbWF4X3VzZV9hZnRlciA9IGZh bHNlOwogICByb290X3N0bXQgPSBnZXRfY2hhaW5fcm9vdCAobmV3X2NoYWlu KS0+c3RtdDsKQEAgLTI3MjcsNiArMjY4Nyw4IEBAIGNvbWJpbmVfY2hhaW5z IChjaGFpbl9wIGNoMSwgY2hhaW5fcCBjaDIpCiAJfQogICAgIH0KIAorICBj aDEtPmNvbWJpbmVkID0gdHJ1ZTsKKyAgY2gyLT5jb21iaW5lZCA9IHRydWU7 CiAgIHJldHVybiBuZXdfY2hhaW47CiB9CiAKLS0gCjEuOS4xCgo= --_002_DB5PR0801MB2742F2AE7A493621CF0C35B6E75D0DB5PR0801MB2742_--