From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29541 invoked by alias); 19 Dec 2017 15:36:51 -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 29531 invoked by uid 89); 19 Dec 2017 15:36:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=1j X-HELO: EUR02-HE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr10062.outbound.protection.outlook.com (HELO EUR02-HE1-obe.outbound.protection.outlook.com) (40.107.1.62) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 19 Dec 2017 15:36:48 +0000 Received: from DB5PR0801MB2742.eurprd08.prod.outlook.com (10.166.176.26) by DB5PR0801MB2743.eurprd08.prod.outlook.com (10.166.176.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.323.15; Tue, 19 Dec 2017 15:36:44 +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.0323.018; Tue, 19 Dec 2017 15:36:43 +0000 From: Bin Cheng To: "gcc-patches@gcc.gnu.org" CC: nd Subject: [PATCH BACKPORT]Backport r254778 and test case in r244815 to GCC6 Date: Tue, 19 Dec 2017 15:36: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;DB5PR0801MB2743;6:fWW4cqICsIGZRl2tAUrlncvQ7ey5r6SMbRoLZ6V0Gy4BtPX8PwVnabOR15HQN4RyigWY2EQDiV4cHbyRTjCWoBYDyVO6TvAdtRVJ3yHqITQdipPDjCnAAnUmK2y3Kz6CwuCSu5LYmzbC9YkwcyRC0IdO/dw9cBqgJpCKnXdufxdffpU2ZeDVpX4OlYcR98Ae4F9rSIw/MAyipO3Dfyumi77c7eq9vvQAX91ZK4OnG5CKI5q/6c98mRa7/dmywTva2lBbjaVqpuAg+rkdY6fXkYHQDyYnqNFfj53l0gP7R0nuUCfUwrK6wQUYCPiezlhyg3+nAepVZH2b3HWLDOLGtBRXdrmQPwM7coBXqTWMzik=;5:b5CMbqCyTE2guwh/XhoSLtpXRv+XwQks9eIWi/gWxnN3C/2kyDpMObCdRYaesB96NHld6kMatLqZI0sDcTysy49OFWv02Anmqc91T2ldci3tML5+xyb6pVOn/JtXF7TBbNTqtnIyQz5nr48DKzPxv56Y+L6huw5NgFm00jMhbWE=;24:hi6VD68ivl6Z0zYbpvoLk0SAy4IadVTcKQuTI+usSBWN5cuP/926IC1asvpMfdREoIoTZLpi+ZBcyZ4j6CaSzc5G2uwCfiOqSJ+gv7d3ULg=;7:Q2Bxi33up6iwq89ObIHoDpKs32hdi3x8iREQSf+fYcI4oCc2wavcwmeoFCyieVXXF+erX+Kb58hgV7imxpSovAcFmA0gbcXJan+gyUhfikrYRENJxPbSVXRX0O573bKOoMeTLNdXlgHp4p/3ZpUcQqW/yRwXqb4R9CV41x2U3WIUdEJ99RYyO8nAkmy34l7lH7o8jpN4F6rBdkrtMU8il6jWtsN41JmkZNlEJ9p5grov8aIgKYgig3tD94lTo9Fd x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 944cdd5f-32a8-4fec-7314-08d546f64e94 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603307)(49563074);SRVR:DB5PR0801MB2743; x-ms-traffictypediagnostic: DB5PR0801MB2743: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(102415395)(6040450)(2401047)(5005006)(8121501046)(3002001)(3231023)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123555025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(6072148)(201708071742011);SRVR:DB5PR0801MB2743;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DB5PR0801MB2743; x-forefront-prvs: 052670E5A4 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(39860400002)(346002)(376002)(396003)(377424004)(189003)(199004)(6116002)(2351001)(86362001)(72206003)(5640700003)(99286004)(14454004)(5660300001)(99936001)(77096006)(2900100001)(316002)(102836003)(6436002)(6916009)(66066001)(53936002)(2906002)(478600001)(3846002)(55016002)(9686003)(25786009)(68736007)(105586002)(2501003)(81156014)(7696005)(81166006)(6506007)(8936002)(59450400001)(4326008)(33656002)(106356001)(97736004)(8676002)(4001150100001)(305945005)(74316002)(3280700002)(3660700001)(7736002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR0801MB2743;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_DB5PR0801MB274288A4BD0ACBF309986CE7E70F0DB5PR0801MB2742_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 944cdd5f-32a8-4fec-7314-08d546f64e94 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2017 15:36:43.6262 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR0801MB2743 X-IsSubscribed: yes X-SW-Source: 2017-12/txt/msg01266.txt.bz2 --_002_DB5PR0801MB274288A4BD0ACBF309986CE7E70F0DB5PR0801MB2742_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 982 HI, This patch backports r254778 and test case in r244815 to GCC6. Bootstrap a= nd test on x86_64. Is it OK? Thanks, bin 2017-12-18 Bin Cheng Backport from mainline 2017-11-15 Bin Cheng PR tree-optimization/82726 PR tree-optimization/70754 * tree-predcom.c (order_drefs_by_pos): New function. (combine_chains): Move code setting has_max_use_after to... (try_combine_chains): ...here. New parameter. Sort combined chains according to position information. (tree_predictive_commoning_loop): Update call to above function. (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New. gcc/testsuite 2017-12-18 Bin Cheng Backport from mainline 2017-11-15 Bin Cheng PR tree-optimization/82726 * gcc.dg/tree-ssa/pr82726.c: New test. Backport from mainline 2017-01-23 Bin Cheng PR tree-optimization/70754 * gfortran.dg/pr70754.f90: New test.= --_002_DB5PR0801MB274288A4BD0ACBF309986CE7E70F0DB5PR0801MB2742_ Content-Type: text/plain; name="backport-r254778-GCC6.txt" Content-Description: backport-r254778-GCC6.txt Content-Disposition: attachment; filename="backport-r254778-GCC6.txt"; size=7120; creation-date="Tue, 19 Dec 2017 15:36:26 GMT"; modification-date="Tue, 19 Dec 2017 15:36:26 GMT" Content-Transfer-Encoding: base64 Content-length: 9655 SW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByODI3MjYu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvdGVzdHN1aXRlL2dj Yy5kZy90cmVlLXNzYS9wcjgyNzI2LmMJKHJldmlzaW9uIDApCisrKyBnY2Mv dGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wcjgyNzI2LmMJKHdvcmtpbmcg Y29weSkKQEAgLTAsMCArMSwyNiBAQAorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC0tcGFyYW0gdHJlZS1yZWFzc29j LXdpZHRoPTQiIH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICIt bWF2eDIiIHsgdGFyZ2V0IHsgeDg2XzY0LSotKiBpPzg2LSotKiB9IH0gfSAq LworCisjZGVmaW5lIE4gNDAKKyNkZWZpbmUgTSAxMjgKK3Vuc2lnbmVkIGlu dCBpbltOK01dOwordW5zaWduZWQgc2hvcnQgb3V0W05dOworCisvKiBPdXRl ci1sb29wIHZlY3Rvcml6YXRpb24uICovCisKK3ZvaWQKK2ZvbyAoKXsKKyAg aW50IGksajsKKyAgdW5zaWduZWQgaW50IGRpZmY7CisKKyAgZm9yIChpID0g MDsgaSA8IE47IGkrKykgeworICAgIGRpZmYgPSAwOworICAgIGZvciAoaiA9 IDA7IGogPCBNOyBqKz04KSB7CisgICAgICBkaWZmICs9IGluW2oraV07Cisg ICAgfQorICAgIG91dFtpXT0odW5zaWduZWQgc2hvcnQpZGlmZjsKKyAgfQor CisgIHJldHVybjsKK30KSW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvcHI3MDc1NC5mOTAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjcwNzU0LmY5MAkocmV2aXNpb24g MCkKKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHI3MDc1NC5mOTAJ KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorISB7IGRnLWRvIGNv bXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1PZmFzdCIgfQorbW9kdWxlIG0K KyAgaW1wbGljaXQgbm9uZQorICBwcml2YXRlCisgIHNhdmUKKworICBpbnRl Z2VyLCBwYXJhbWV0ZXIsIHB1YmxpYyA6OiAmCisgICAgaWk0ICAgICAgICAg ID0gc2VsZWN0ZWRfaW50X2tpbmQoNiksICYKKyAgICBycjggICAgICAgICAg PSBzZWxlY3RlZF9yZWFsX2tpbmQoMTMpCisKKyAgaW50ZWdlciAoaWk0KSwg ZGltZW5zaW9uKDQwLDQwLDE5OSksIHB1YmxpYyA6OiB4eXoKKyAgcHVibGlj IDo6IGZvbworY29udGFpbnMKKyAgc3Vicm91dGluZSBmb28oYSkKKyAgICBy ZWFsIChycjgpLCBkaW1lbnNpb24oNDAsNDApLCBpbnRlbnQob3V0KSA6OiBh CisgICAgcmVhbCAocnI4KSwgZGltZW5zaW9uKDQwLDQwKSA6OiBiCisgICAg aW50ZWdlciAoaWk0KSwgZGltZW5zaW9uKDQwLDQwKSA6OiBjCisgICAgaW50 ZWdlciAgaSwgagorCisgICAgZG8gaT0xLDIwCisgICAgICBiKGksaikgPSAx MjMgKiBhKGksaikgKyAzNCAqIGEoaSxqKzEpICYKKyAgICAgICAgICAgICAr IDM0ICogYShpLGotMSkgKyBhKGkrMSxqKzEpICYKKyAgICAgICAgICAgICAr IGEoaSsxLGotMSkgKyBhKGktMSxqKzEpICYKKyAgICAgICAgICAgICArIGEo aS0xLGotMSkKKyAgICAgIGMoaSxqKSA9IDEyMworICAgIGVuZCBkbworCisg ICAgd2hlcmUgKCh4eXooOiw6LDIpIC89IDApIC5hbmQuIChjIC89IDApKQor ICAgICAgYSA9IGIvcmVhbChjKQorICAgIGVsc2V3aGVyZQorICAgICAgYSA9 IDQ1NgorICAgIGVuZHdoZXJlCisgZW5kIHN1YnJvdXRpbmUgZm9vCitlbmQg bW9kdWxlIG0KSW5kZXg6IGdjYy90cmVlLXByZWRjb20uYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBnY2MvdHJlZS1wcmVkY29tLmMJKHJldmlzaW9u IDI1NTgxNykKKysrIGdjYy90cmVlLXByZWRjb20uYwkod29ya2luZyBjb3B5 KQpAQCAtOTQzLDYgKzk0MywxNyBAQAogICByZXR1cm4gKCpkYSktPnBvcyAt ICgqZGIpLT5wb3M7CiB9CiAKKy8qIENvbXBhcmVzIHR3byBkcmVmcyBBIGFu ZCBCIGJ5IHRoZWlyIHBvc2l0aW9uLiAgQ2FsbGJhY2sgZm9yIHFzb3J0LiAg Ki8KKworc3RhdGljIGludAorb3JkZXJfZHJlZnNfYnlfcG9zIChjb25zdCB2 b2lkICphLCBjb25zdCB2b2lkICpiKQoreworICBjb25zdCBkcmVmICpjb25z dCBkYSA9IChjb25zdCBkcmVmICopIGE7CisgIGNvbnN0IGRyZWYgKmNvbnN0 IGRiID0gKGNvbnN0IGRyZWYgKikgYjsKKworICByZXR1cm4gKCpkYSktPnBv cyAtICgqZGIpLT5wb3M7Cit9CisKIC8qIFJldHVybnMgcm9vdCBvZiB0aGUg Q0hBSU4uICAqLwogCiBzdGF0aWMgaW5saW5lIGRyZWYKQEAgLTIyNTAsNyAr MjI2MSw2IEBACiAgIGJvb2wgc3dhcCA9IGZhbHNlOwogICBjaGFpbl9wIG5l d19jaGFpbjsKICAgdW5zaWduZWQgaTsKLSAgZ2ltcGxlICpyb290X3N0bXQ7 CiAgIHRyZWUgcnNsdF90eXBlID0gTlVMTF9UUkVFOwogCiAgIGlmIChjaDEg PT0gY2gyKQpAQCAtMjI5MiwzMSArMjMwMiw1NSBAQAogICAgICAgbmV3X2No YWluLT5yZWZzLnNhZmVfcHVzaCAobncpOwogICAgIH0KIAotICBuZXdfY2hh aW4tPmhhc19tYXhfdXNlX2FmdGVyID0gZmFsc2U7Ci0gIHJvb3Rfc3RtdCA9 IGdldF9jaGFpbl9yb290IChuZXdfY2hhaW4pLT5zdG10OwotICBmb3IgKGkg PSAxOyBuZXdfY2hhaW4tPnJlZnMuaXRlcmF0ZSAoaSwgJm53KTsgaSsrKQot ICAgIHsKLSAgICAgIGlmIChudy0+ZGlzdGFuY2UgPT0gbmV3X2NoYWluLT5s ZW5ndGgKLQkgICYmICFzdG10X2RvbWluYXRlc19zdG10X3AgKG53LT5zdG10 LCByb290X3N0bXQpKQotCXsKLQkgIG5ld19jaGFpbi0+aGFzX21heF91c2Vf YWZ0ZXIgPSB0cnVlOwotCSAgYnJlYWs7Ci0JfQotICAgIH0KLQogICBjaDEt PmNvbWJpbmVkID0gdHJ1ZTsKICAgY2gyLT5jb21iaW5lZCA9IHRydWU7CiAg IHJldHVybiBuZXdfY2hhaW47CiB9CiAKLS8qIFRyeSB0byBjb21iaW5lIHRo ZSBDSEFJTlMuICAqLworLyogUmVjdXJzaXZlbHkgdXBkYXRlIHBvc2l0aW9u IGluZm9ybWF0aW9uIG9mIGFsbCBvZmZzcHJpbmcgY2hhaW5zIHRvIFJPT1QK KyAgIGNoYWluJ3MgcG9zaXRpb24gaW5mb3JtYXRpb24uICAqLwogCiBzdGF0 aWMgdm9pZAotdHJ5X2NvbWJpbmVfY2hhaW5zICh2ZWM8Y2hhaW5fcD4gKmNo YWlucykKK3VwZGF0ZV9wb3NfZm9yX2NvbWJpbmVkX2NoYWlucyAoY2hhaW5f cCByb290KQogeworICBjaGFpbl9wIGNoMSA9IHJvb3QtPmNoMSwgY2gyID0g cm9vdC0+Y2gyOworICBkcmVmIHJlZiwgcmVmMSwgcmVmMjsKKyAgZm9yICh1 bnNpZ25lZCBqID0gMDsgKHJvb3QtPnJlZnMuaXRlcmF0ZSAoaiwgJnJlZikK KwkJCSYmIGNoMS0+cmVmcy5pdGVyYXRlIChqLCAmcmVmMSkKKwkJCSYmIGNo Mi0+cmVmcy5pdGVyYXRlIChqLCAmcmVmMikpOyArK2opCisgICAgcmVmMS0+ cG9zID0gcmVmMi0+cG9zID0gcmVmLT5wb3M7CisKKyAgaWYgKGNoMS0+dHlw ZSA9PSBDVF9DT01CSU5BVElPTikKKyAgICB1cGRhdGVfcG9zX2Zvcl9jb21i aW5lZF9jaGFpbnMgKGNoMSk7CisgIGlmIChjaDItPnR5cGUgPT0gQ1RfQ09N QklOQVRJT04pCisgICAgdXBkYXRlX3Bvc19mb3JfY29tYmluZWRfY2hhaW5z IChjaDIpOworfQorCisvKiBSZXR1cm5zIHRydWUgaWYgc3RhdGVtZW50IFMx IGRvbWluYXRlcyBzdGF0ZW1lbnQgUzIuICAqLworCitzdGF0aWMgYm9vbAor cGNvbV9zdG10X2RvbWluYXRlc19zdG10X3AgKGdpbXBsZSAqczEsIGdpbXBs ZSAqczIpCit7CisgIGJhc2ljX2Jsb2NrIGJiMSA9IGdpbXBsZV9iYiAoczEp LCBiYjIgPSBnaW1wbGVfYmIgKHMyKTsKKworICBpZiAoIWJiMSB8fCBzMSA9 PSBzMikKKyAgICByZXR1cm4gdHJ1ZTsKKworICBpZiAoYmIxID09IGJiMikK KyAgICByZXR1cm4gZ2ltcGxlX3VpZCAoczEpIDwgZ2ltcGxlX3VpZCAoczIp OworCisgIHJldHVybiBkb21pbmF0ZWRfYnlfcCAoQ0RJX0RPTUlOQVRPUlMs IGJiMiwgYmIxKTsKK30KKworLyogVHJ5IHRvIGNvbWJpbmUgdGhlIENIQUlO UyBpbiBMT09QLiAgKi8KKworc3RhdGljIHZvaWQKK3RyeV9jb21iaW5lX2No YWlucyAoc3RydWN0IGxvb3AgKmxvb3AsIHZlYzxjaGFpbl9wPiAqY2hhaW5z KQorewogICB1bnNpZ25lZCBpLCBqOwogICBjaGFpbl9wIGNoMSwgY2gyLCBj Y2g7CiAgIGF1dG9fdmVjPGNoYWluX3A+IHdvcmtsaXN0OworICBib29sIGNv bWJpbmVkX3AgPSBmYWxzZTsKIAogICBGT1JfRUFDSF9WRUNfRUxUICgqY2hh aW5zLCBpLCBjaDEpCiAgICAgaWYgKGNoYWluX2Nhbl9iZV9jb21iaW5lZF9w IChjaDEpKQpAQCAtMjMzOCwxMCArMjM3Miw4MiBAQAogCSAgICB7CiAJICAg ICAgd29ya2xpc3Quc2FmZV9wdXNoIChjY2gpOwogCSAgICAgIGNoYWlucy0+ c2FmZV9wdXNoIChjY2gpOworCSAgICAgIGNvbWJpbmVkX3AgPSB0cnVlOwog CSAgICAgIGJyZWFrOwogCSAgICB9CiAJfQogICAgIH0KKyAgaWYgKCFjb21i aW5lZF9wKQorICAgIHJldHVybjsKKworICAvKiBTZXR1cCBVSUQgZm9yIGFs bCBzdGF0ZW1lbnRzIGluIGRvbWluYW5jZSBvcmRlci4gICovCisgIGJhc2lj X2Jsb2NrICpiYnMgPSBnZXRfbG9vcF9ib2R5IChsb29wKTsKKyAgcmVudW1i ZXJfZ2ltcGxlX3N0bXRfdWlkc19pbl9ibG9ja3MgKGJicywgbG9vcC0+bnVt X25vZGVzKTsKKyAgZnJlZSAoYmJzKTsKKworICAvKiBSZS1hc3NvY2lhdGlv biBpbiBjb21iaW5lZCBjaGFpbnMgbWF5IGdlbmVyYXRlIHN0YXRlbWVudHMg ZGlmZmVyZW50IHRvCisgICAgIG9yZGVyIG9mIHJlZmVyZW5jZXMgb2YgdGhl IG9yaWdpbmFsIGNoYWluLiAgV2UgbmVlZCB0byBrZWVwIHJlZmVyZW5jZXMK KyAgICAgb2YgY29tYmluZWQgY2hhaW4gaW4gZG9taW5hbmNlIG9yZGVyIHNv IHRoYXQgYWxsIHVzZXMgd2lsbCBiZSBpbnNlcnRlZAorICAgICBhZnRlciBk ZWZpbml0aW9ucy4gIE5vdGU6CisgICAgICAgQSkgVGhpcyBpcyBuZWNlc3Nh cnkgZm9yIGFsbCBjb21iaW5lZCBjaGFpbnMuCisgICAgICAgQikgVGhpcyBp cyBvbmx5IG5lY2Vzc2FyeSBmb3IgWkVSTyBkaXN0YW5jZSByZWZlcmVuY2Vz IGJlY2F1c2Ugb3RoZXIKKwkgIHJlZmVyZW5jZXMgaW5oZXJpdCB2YWx1ZSBm cm9tIGxvb3AgY2FycmllZCBQSElzLgorCisgICAgIFdlIGZpcnN0IHVwZGF0 ZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3IgYWxsIGNvbWJpbmVkIGNoYWlu cy4gICovCisgIGRyZWYgcmVmOworICBmb3IgKGkgPSAwOyBjaGFpbnMtPml0 ZXJhdGUgKGksICZjaDEpOyArK2kpCisgICAgeworICAgICAgaWYgKGNoMS0+ dHlwZSAhPSBDVF9DT01CSU5BVElPTiB8fCBjaDEtPmNvbWJpbmVkKQorCWNv bnRpbnVlOworCisgICAgICBmb3IgKGogPSAwOyBjaDEtPnJlZnMuaXRlcmF0 ZSAoaiwgJnJlZik7ICsraikKKwlyZWYtPnBvcyA9IGdpbXBsZV91aWQgKHJl Zi0+c3RtdCk7CisKKyAgICAgIHVwZGF0ZV9wb3NfZm9yX2NvbWJpbmVkX2No YWlucyAoY2gxKTsKKyAgICB9CisgIC8qIFRoZW4gc29ydCByZWZlcmVuY2Vz IGFjY29yZGluZyB0byBuZXdseSB1cGRhdGVkIHBvc2l0aW9uIGluZm9ybWF0 aW9uLiAgKi8KKyAgZm9yIChpID0gMDsgY2hhaW5zLT5pdGVyYXRlIChpLCAm Y2gxKTsgKytpKQorICAgIHsKKyAgICAgIGlmIChjaDEtPnR5cGUgIT0gQ1Rf Q09NQklOQVRJT04gJiYgIWNoMS0+Y29tYmluZWQpCisJY29udGludWU7CisK KyAgICAgIC8qIEZpbmQgdGhlIGZpcnN0IHJlZmVyZW5jZSB3aXRoIG5vbi1a RVJPIGRpc3RhbmNlLiAgKi8KKyAgICAgIGlmIChjaDEtPmxlbmd0aCA9PSAw KQorCWogPSBjaDEtPnJlZnMubGVuZ3RoKCk7CisgICAgICBlbHNlCisJewor CSAgZm9yIChqID0gMDsgY2gxLT5yZWZzLml0ZXJhdGUgKGosICZyZWYpOyAr K2opCisJICAgIGlmIChyZWYtPmRpc3RhbmNlICE9IDApCisJICAgICAgYnJl YWs7CisJfQorCisgICAgICAvKiBTb3J0IGFsbCBaRVJPIGRpc3RhbmNlIHJl ZmVyZW5jZXMgYnkgcG9zaXRpb24uICAqLworICAgICAgcXNvcnQgKCZjaDEt PnJlZnNbMF0sIGosIHNpemVvZiAoY2gxLT5yZWZzWzBdKSwgb3JkZXJfZHJl ZnNfYnlfcG9zKTsKKworICAgICAgaWYgKGNoMS0+Y29tYmluZWQpCisJY29u dGludWU7CisKKyAgICAgIC8qIEZvciBaRVJPIGxlbmd0aCBjaGFpbiwgaGFz X21heF91c2VfYWZ0ZXIgbXVzdCBiZSB0cnVlIHNpbmNlIHJvb3QKKwkgY29t YmluZWQgc3RtdCBtdXN0IGRvbWluYXRlcyBvdGhlcnMuICAqLworICAgICAg aWYgKGNoMS0+bGVuZ3RoID09IDApCisJeworCSAgY2gxLT5oYXNfbWF4X3Vz ZV9hZnRlciA9IHRydWU7CisJICBjb250aW51ZTsKKwl9CisgICAgICAvKiBD aGVjayBpZiB0aGVyZSBpcyB1c2UgYXQgbWF4IGRpc3RhbmNlIGFmdGVyIHJv b3QgZm9yIGNvbWJpbmVkIGNoYWlucworCSBhbmQgc2V0IGZsYWcgYWNjb3Jk aW5nbHkuICAqLworICAgICAgY2gxLT5oYXNfbWF4X3VzZV9hZnRlciA9IGZh bHNlOworICAgICAgZ2ltcGxlICpyb290X3N0bXQgPSBnZXRfY2hhaW5fcm9v dCAoY2gxKS0+c3RtdDsKKyAgICAgIGZvciAoaiA9IDE7IGNoMS0+cmVmcy5p dGVyYXRlIChqLCAmcmVmKTsgKytqKQorCXsKKwkgIGlmIChyZWYtPmRpc3Rh bmNlID09IGNoMS0+bGVuZ3RoCisJICAgICAgJiYgIXBjb21fc3RtdF9kb21p bmF0ZXNfc3RtdF9wIChyZWYtPnN0bXQsIHJvb3Rfc3RtdCkpCisJICAgIHsK KwkgICAgICBjaDEtPmhhc19tYXhfdXNlX2FmdGVyID0gdHJ1ZTsKKwkgICAg ICBicmVhazsKKwkgICAgfQorCX0KKyAgICB9CiB9CiAKIC8qIFByZXBhcmUg aW5pdGlhbGl6ZXJzIGZvciBDSEFJTiBpbiBMT09QLiAgUmV0dXJucyBmYWxz ZSBpZiB0aGlzIGlzCkBAIC0yNDkwLDcgKzI1OTYsNyBAQAogICBwcmVwYXJl X2luaXRpYWxpemVycyAobG9vcCwgY2hhaW5zKTsKIAogICAvKiBUcnkgdG8g Y29tYmluZSB0aGUgY2hhaW5zIHRoYXQgYXJlIGFsd2F5cyB3b3JrZWQgd2l0 aCB0b2dldGhlci4gICovCi0gIHRyeV9jb21iaW5lX2NoYWlucyAoJmNoYWlu cyk7CisgIHRyeV9jb21iaW5lX2NoYWlucyAobG9vcCwgJmNoYWlucyk7CiAK ICAgaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxT KSkKICAgICB7Cg== --_002_DB5PR0801MB274288A4BD0ACBF309986CE7E70F0DB5PR0801MB2742_--