From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11797 invoked by alias); 4 Jan 2011 22:35:13 -0000 Received: (qmail 11519 invoked by uid 22791); 4 Jan 2011 22:35:08 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,TW_DB X-Spam-Check-By: sourceware.org Received: from tx2ehsobe002.messaging.microsoft.com (HELO TX2EHSOBE004.bigfish.com) (65.55.88.12) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 04 Jan 2011 22:35:01 +0000 Received: from mail177-tx2-R.bigfish.com (10.9.14.248) by TX2EHSOBE004.bigfish.com (10.9.40.24) with Microsoft SMTP Server id 14.1.225.8; Tue, 4 Jan 2011 22:34:59 +0000 Received: from mail177-tx2 (localhost.localdomain [127.0.0.1]) by mail177-tx2-R.bigfish.com (Postfix) with ESMTP id 5DDCC1710294; Tue, 4 Jan 2011 22:34:59 +0000 (UTC) X-SpamScore: -33 X-BigFish: VPS-33(zz1432N98dN4015L1447R9371Pzz1202hzz8275dhz32i668h34h) X-Forefront-Antispam-Report: KIP:(null);UIP:(null);IPVD:NLI;H:ausb3twp02.amd.com;RD:none;EFVD:NLI Received: from mail177-tx2 (localhost.localdomain [127.0.0.1]) by mail177-tx2 (MessageSwitch) id 1294180498803111_9442; Tue, 4 Jan 2011 22:34:58 +0000 (UTC) Received: from TX2EHSMHS005.bigfish.com (unknown [10.9.14.240]) by mail177-tx2.bigfish.com (Postfix) with ESMTP id BE810620050; Tue, 4 Jan 2011 22:34:58 +0000 (UTC) Received: from ausb3twp02.amd.com (163.181.249.109) by TX2EHSMHS005.bigfish.com (10.9.99.105) with Microsoft SMTP Server id 14.1.225.8; Tue, 4 Jan 2011 22:34:57 +0000 X-M-MSG: Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com [163.181.249.73]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by ausb3twp02.amd.com (Tumbleweed MailGate 3.7.2) with ESMTP id 2A80BC85E9; Tue, 4 Jan 2011 16:34:54 -0600 (CST) Received: from sausexhtp02.amd.com (163.181.3.152) by sausexedgep02.amd.com (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.106.1; Tue, 4 Jan 2011 16:38:03 -0600 Received: from SAUSEXMBP01.amd.com ([163.181.3.198]) by sausexhtp02.amd.com ([163.181.3.152]) with mapi; Tue, 4 Jan 2011 16:34:55 -0600 From: "Fang, Changpeng" To: Jack Howarth CC: Zdenek Dvorak , Richard Guenther , Xinliang David Li , "gcc-patches@gcc.gnu.org" Date: Tue, 04 Jan 2011 22:40:00 -0000 Subject: RE: [PATCH, Loop optimizer]: Add logic to disable certain loop optimizations on pre-/post-loops Message-ID: References: <20101214075629.GA10020@kam.mff.cuni.cz> <20101214210552.GA19633@kam.mff.cuni.cz> <20101215092220.GA9872@kam.mff.cuni.cz> ,<20110104030426.GA28556@bromo.med.uc.edu> In-Reply-To: <20110104030426.GA28556@bromo.med.uc.edu> Content-Type: multipart/mixed; boundary="_002_D4C76825A6780047854A11E93CDE84D004C176842FSAUSEXMBP01am_" MIME-Version: 1.0 X-OriginatorOrg: amd.com 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-01/txt/msg00178.txt.bz2 --_002_D4C76825A6780047854A11E93CDE84D004C176842FSAUSEXMBP01am_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 3645 Hi, Thanks, Jack. Hopefully the 6% protein gain (for -m64) is not just noise.=20 I updated the patch based on the current trunk (REV 168477). Is it OK to commit now? Thanks, Changpeng ________________________________________ From: Jack Howarth [howarth@bromo.med.uc.edu] Sent: Monday, January 03, 2011 9:04 PM To: Fang, Changpeng Cc: Zdenek Dvorak; Richard Guenther; Xinliang David Li; gcc-patches@gcc.gnu= .org Subject: Re: [PATCH, Loop optimizer]: Add logic to disable certain loop opt= imizations on pre-/post-loops On Fri, Dec 17, 2010 at 01:14:49AM -0600, Fang, Changpeng wrote: > Hi, Jack: > > Thanks for the testing. > > This patch is not supposed to slow down a program by 10% (rnflow and test= _fpu). > It would be helpful if you can provide analysis why they are slowed down. Changpeng, The corrected merge against gcc trunk of... Index: gcc/basic-block.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/basic-block.h (revision 168437) +++ gcc/basic-block.h (working copy) @@ -247,11 +247,14 @@ Only used in cfgcleanup.c. */ BB_NONTHREADABLE_BLOCK =3D 1 << 11, + /* Set on blocks that are headers of non-rolling loops. */ + BB_HEADER_OF_NONROLLING_LOOP =3D 1 << 12, + /* Set on blocks that were modified in some way. This bit is set in df_set_bb_dirty, but not cleared by df_analyze, so it can be used to test whether a block has been modified prior to a df_analyze call. */ - BB_MODIFIED =3D 1 << 12 + BB_MODIFIED =3D 1 << 13 }; /* Dummy flag for convenience in the hot/cold partitioning code. */ for the proposed patch from http://gcc.gnu.org/ml/gcc-patches/2010-12/msg01= 344.html eliminated the performance regressions on x86_64-apple-darwin10. I now get.= .. Compile Command : gfortran -ffast-math -funroll-loops -O3 %n.f90 -o %n Execution Time -m32 stock patched %increase ac 10.59 10.59 0.0 aermod 19.49 19.13 -1.8 air 6.07 6.07 0.0 capacita 44.60 44.61 0.0 channel 1.98 1.98 0.0 doduc 31.19 31.31 0.4 fatigue 9.90 10.29 3.9 gas_dyn 4.72 4.71 -0.2 induct 13.93 13.93 0.0 linpk 15.50 15.49 -0.1 mdbx 11.28 11.26 -0.2 nf 27.62 27.58 -0.1 protein 38.70 38.60 -0.3 rnflow 24.68 24.68 0.0 test_fpu 10.13 10.13 0.0 tfft 1.92 1.92 0.0 Geometric Mean 12.06 12.08 0.2 Execution Time -m64 stock patched %increase ac 8.80 8.80 0.0 aermod 17.34 17.17 -1.0 air 5.48 5.52 0.7 capacita 32.38 32.50 0.4 channel 1.84 1.84 0.0 doduc 26.50 26.52 0.1 fatigue 8.35 8.33 -0.2 gas_dyn 4.30 4.29 -0.2 induct 12.83 12.83 0.0 linpk 15.49 15.49 0.0 mdbx 11.23 11.22 -0.1 nf 30.21 30.16 -0.2 protein 34.13 32.07 -6.0 rnflow 23.18 23.19 0.0 test_fpu 8.04 8.02 -0.2 tfft 1.87 1.86 -0.5 Geometric Mean 10.87 10.82 -0.5 Execution Time --_002_D4C76825A6780047854A11E93CDE84D004C176842FSAUSEXMBP01am_ Content-Type: text/x-patch; name="0001-Consider-a-loop-not-hot-if-it-rolls-only-a-few-times.patch" Content-Description: 0001-Consider-a-loop-not-hot-if-it-rolls-only-a-few-times.patch Content-Disposition: attachment; filename="0001-Consider-a-loop-not-hot-if-it-rolls-only-a-few-times.patch"; size=6232; creation-date="Tue, 04 Jan 2011 16:31:10 GMT"; modification-date="Tue, 04 Jan 2011 16:31:10 GMT" Content-Transfer-Encoding: base64 Content-length: 8451 RnJvbSA3ZDEwZmNmZTM3OWUzZmU0Mzg3Y2YxOTJmYmJkYmVhN2RhZmYwNjM3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFuZ3BlbmcgRmFu ZyA8Y2hmYW5nQGhvdWdodG9uLihub25lKT4KRGF0ZTogVHVlLCA0IEphbiAy MDExIDE0OjM2OjUwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQ29uc2lkZXIg YSBsb29wIG5vdCBob3QgaWYgaXQgcm9sbHMgb25seSBhIGZldyB0aW1lcyAo bm9uLXJvbGxpbmcpCgoJKiBiYXNpYy1ibG9jay5oIChiYl9mbGFncyk6IEFk ZCBhIG5ldyBmbGFnIEJCX0hFQURFUl9PRl9OT05ST0xMSU5HX0xPT1AuCgkq IGNmZy5jIChjbGVhcl9iYl9mbGFncyk6IEtlZXAgQkJfSEVBREVSX09GX05P TlJPTExJTkcgbWFya2VyLgoJKiBjZmdsb29wLmggKG1hcmtfbm9uX3JvbGxp bmdfbG9vcCk6IE5ldyBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCSAgKG5vbl9y b2xsaW5nX2xvb3BfcCk6IE5ldyBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCSog cHJlZGljdC5jIChvcHRpbWl6ZV9sb29wX2Zvcl9zaXplX3ApOiBSZXR1cm4g dHJ1ZSBpZiB0aGUgbG9vcCB3YXMgbWFya2VkCgkgIE5PTi1ST0xMSU5HLiAg KG9wdGltaXplX2xvb3BfZm9yX3NwZWVkX3ApOiBSZXR1cm4gZmFsc2UgaWYg dGhlIGxvb3Agd2FzCgkgIG1hcmtlZCBOT04tUk9MTElORy4KCSogdHJlZS1z c2EtbG9vcC1tYW5pcC5jICh0cmVlX3RyYW5zZm9ybV9hbmRfdW5yb2xsX2xv b3ApOiBNYXJrIHRoZQoJICBub24tcm9sbGluZyBsb29wLgoJKiB0cmVlLXNz YS1sb29wLW5pdGVyLmMgKG1hcmtfbm9uX3JvbGxpbmdfbG9vcCk6IEltcGxl bWVudCB0aGUgbmV3CgkgIGZ1bmN0aW9uLiAgKG5vbl9yb2xsaW5nX2xvb3Bf cCk6IEltcGxlbWVudCB0aGUgbmV3IGZ1bmN0aW9uLgoJKiB0cmVlLXZlY3Qt bG9vcC1tYW5pcC5jICh2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQp OiBNYXJrIHRoZQoJICBub24tcm9sbGluZyBsb29wLiAgKHZlY3RfZG9fcGVl bGluZ19mb3JfYWxpZ25tZW50KTogTWFyayB0aGUgbm9uLXJvbGxpbmcKCSAg bG9vcC4KLS0tCiBnY2MvYmFzaWMtYmxvY2suaCAgICAgICAgICB8ICAgIDUg KysrKy0KIGdjYy9jZmcuYyAgICAgICAgICAgICAgICAgIHwgICAgNyArKysr LS0tCiBnY2MvY2ZnbG9vcC5oICAgICAgICAgICAgICB8ICAgIDIgKysKIGdj Yy9wcmVkaWN0LmMgICAgICAgICAgICAgIHwgICAgNiArKysrKysKIGdjYy90 cmVlLXNzYS1sb29wLW1hbmlwLmMgIHwgICAgMyArKysKIGdjYy90cmVlLXNz YS1sb29wLW5pdGVyLmMgIHwgICAyMCArKysrKysrKysrKysrKysrKysrKwog Z2NjL3RyZWUtdmVjdC1sb29wLW1hbmlwLmMgfCAgICA4ICsrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2Jhc2ljLWJsb2NrLmggYi9nY2MvYmFz aWMtYmxvY2suaAppbmRleCAzNTk0ZWVhLi4wODFjMTc1IDEwMDY0NAotLS0g YS9nY2MvYmFzaWMtYmxvY2suaAorKysgYi9nY2MvYmFzaWMtYmxvY2suaApA QCAtMjUxLDcgKzI1MSwxMCBAQCBlbnVtIGJiX2ZsYWdzCiAgICAgIGRmX3Nl dF9iYl9kaXJ0eSwgYnV0IG5vdCBjbGVhcmVkIGJ5IGRmX2FuYWx5emUsIHNv IGl0IGNhbiBiZSB1c2VkCiAgICAgIHRvIHRlc3Qgd2hldGhlciBhIGJsb2Nr IGhhcyBiZWVuIG1vZGlmaWVkIHByaW9yIHRvIGEgZGZfYW5hbHl6ZQogICAg ICBjYWxsLiAgKi8KLSAgQkJfTU9ESUZJRUQgPSAxIDw8IDEyCisgIEJCX01P RElGSUVEID0gMSA8PCAxMiwKKworIC8qIFNldCBvbiBibG9ja3MgdGhhdCBh cmUgaGVhZGVycyBvZiBub24tcm9sbGluZyBsb29wcy4gICovCisgIEJCX0hF QURFUl9PRl9OT05ST0xMSU5HX0xPT1AgPSAxIDw8IDEzCiB9OwogCiAvKiBE dW1teSBmbGFnIGZvciBjb252ZW5pZW5jZSBpbiB0aGUgaG90L2NvbGQgcGFy dGl0aW9uaW5nIGNvZGUuICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2NmZy5jIGIv Z2NjL2NmZy5jCmluZGV4IGM4ZWY3OTkuLmU1OWE2MzcgMTAwNjQ0Ci0tLSBh L2djYy9jZmcuYworKysgYi9nY2MvY2ZnLmMKQEAgLTQyNSw4ICs0MjUsOCBA QCByZWRpcmVjdF9lZGdlX3ByZWQgKGVkZ2UgZSwgYmFzaWNfYmxvY2sgbmV3 X3ByZWQpCiAgIGNvbm5lY3Rfc3JjIChlKTsKIH0KIAotLyogQ2xlYXIgYWxs IGJhc2ljIGJsb2NrIGZsYWdzLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgcGFy dGl0aW9uaW5nIGFuZAotICAgc2V0am1wX3RhcmdldC4gICovCisvKiBDbGVh ciBhbGwgYmFzaWMgYmxvY2sgZmxhZ3MsIHdpdGggdGhlIGV4Y2VwdGlvbiBv ZiBwYXJ0aXRpb25pbmcsCisgICBzZXRqbXBfdGFyZ2V0LCBhbmQgdGhlIG5v bi1yb2xsaW5nIGxvb3AgbWFya2VyLiAgKi8KIHZvaWQKIGNsZWFyX2JiX2Zs YWdzICh2b2lkKQogewpAQCAtNDM0LDcgKzQzNCw4IEBAIGNsZWFyX2JiX2Zs YWdzICh2b2lkKQogCiAgIEZPUl9CQl9CRVRXRUVOIChiYiwgRU5UUllfQkxP Q0tfUFRSLCBOVUxMLCBuZXh0X2JiKQogICAgIGJiLT5mbGFncyA9IChCQl9Q QVJUSVRJT04gKGJiKQotCQkgfCAoYmItPmZsYWdzICYgKEJCX0RJU0FCTEVf U0NIRURVTEUgKyBCQl9SVEwgKyBCQl9OT05fTE9DQUxfR09UT19UQVJHRVQp KSk7CisJCSB8IChiYi0+ZmxhZ3MgJiAoQkJfRElTQUJMRV9TQ0hFRFVMRSAr IEJCX1JUTCArIEJCX05PTl9MT0NBTF9HT1RPX1RBUkdFVAorCQkJCSArIEJC X0hFQURFUl9PRl9OT05ST0xMSU5HX0xPT1ApKSk7CiB9CiAMCiAvKiBDaGVj ayB0aGUgY29uc2lzdGVuY3kgb2YgcHJvZmlsZSBpbmZvcm1hdGlvbi4gIFdl IGNhbid0IGRvIHRoYXQKZGlmZiAtLWdpdCBhL2djYy9jZmdsb29wLmggYi9n Y2MvY2ZnbG9vcC5oCmluZGV4IGY3YmIxMzQuLjBmNDgxMTUgMTAwNjQ0Ci0t LSBhL2djYy9jZmdsb29wLmgKKysrIGIvZ2NjL2NmZ2xvb3AuaApAQCAtMjc5 LDYgKzI3OSw4IEBAIGV4dGVybiBydHggZG9sb29wX2NvbmRpdGlvbl9nZXQg KHJ0eCk7CiB2b2lkIGVzdGltYXRlX251bWJlcnNfb2ZfaXRlcmF0aW9uc19s b29wIChzdHJ1Y3QgbG9vcCAqLCBib29sKTsKIEhPU1RfV0lERV9JTlQgZXN0 aW1hdGVkX2xvb3BfaXRlcmF0aW9uc19pbnQgKHN0cnVjdCBsb29wICosIGJv b2wpOwogYm9vbCBlc3RpbWF0ZWRfbG9vcF9pdGVyYXRpb25zIChzdHJ1Y3Qg bG9vcCAqLCBib29sLCBkb3VibGVfaW50ICopOwordm9pZCBtYXJrX25vbl9y b2xsaW5nX2xvb3AgKHN0cnVjdCBsb29wICopOworYm9vbCBub25fcm9sbGlu Z19sb29wX3AgKHN0cnVjdCBsb29wICopOwogCiAvKiBMb29wIG1hbmlwdWxh dGlvbi4gICovCiBleHRlcm4gYm9vbCBjYW5fZHVwbGljYXRlX2xvb3BfcCAo Y29uc3Qgc3RydWN0IGxvb3AgKmxvb3ApOwpkaWZmIC0tZ2l0IGEvZ2NjL3By ZWRpY3QuYyBiL2djYy9wcmVkaWN0LmMKaW5kZXggYTg2NzA4YS4uMzRkN2Rm ZiAxMDA2NDQKLS0tIGEvZ2NjL3ByZWRpY3QuYworKysgYi9nY2MvcHJlZGlj dC5jCkBAIC0yODAsNiArMjgwLDkgQEAgb3B0aW1pemVfaW5zbl9mb3Jfc3Bl ZWRfcCAodm9pZCkKIGJvb2wKIG9wdGltaXplX2xvb3BfZm9yX3NpemVfcCAo c3RydWN0IGxvb3AgKmxvb3ApCiB7CisgIC8qIExvb3BzIG1hcmtlZCBOT04t Uk9MTElORyBhcmUgbm90IGxpa2VseSB0byBiZSBob3QuICAqLworICBpZiAo bm9uX3JvbGxpbmdfbG9vcF9wIChsb29wKSkKKyAgICByZXR1cm4gdHJ1ZTsK ICAgcmV0dXJuIG9wdGltaXplX2JiX2Zvcl9zaXplX3AgKGxvb3AtPmhlYWRl cik7CiB9CiAKQEAgLTI4OCw2ICsyOTEsOSBAQCBvcHRpbWl6ZV9sb29wX2Zv cl9zaXplX3AgKHN0cnVjdCBsb29wICpsb29wKQogYm9vbAogb3B0aW1pemVf bG9vcF9mb3Jfc3BlZWRfcCAoc3RydWN0IGxvb3AgKmxvb3ApCiB7CisgIC8q IExvb3BzIG1hcmtlZCBOT04tUk9MTElORyBhcmUgbm90IGxpa2VseSB0byBi ZSBob3QuICAqLworICBpZiAobm9uX3JvbGxpbmdfbG9vcF9wIChsb29wKSkK KyAgICByZXR1cm4gZmFsc2U7CiAgIHJldHVybiBvcHRpbWl6ZV9iYl9mb3Jf c3BlZWRfcCAobG9vcC0+aGVhZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUtc3NhLWxvb3AtbWFuaXAuYyBiL2djYy90cmVlLXNzYS1sb29wLW1h bmlwLmMKaW5kZXggODE3NmVkOC4uM2ZmMDc5MCAxMDA2NDQKLS0tIGEvZ2Nj L3RyZWUtc3NhLWxvb3AtbWFuaXAuYworKysgYi9nY2MvdHJlZS1zc2EtbG9v cC1tYW5pcC5jCkBAIC05MzEsNiArOTMxLDkgQEAgdHJlZV90cmFuc2Zvcm1f YW5kX3Vucm9sbF9sb29wIChzdHJ1Y3QgbG9vcCAqbG9vcCwgdW5zaWduZWQg ZmFjdG9yLAogICBnY2NfYXNzZXJ0IChuZXdfbG9vcCAhPSBOVUxMKTsKICAg dXBkYXRlX3NzYSAoVE9ET191cGRhdGVfc3NhKTsKIAorICAvKiBORVdfTE9P UCBpcyBhIG5vbi1yb2xsaW5nIGxvb3AuICAqLworICBtYXJrX25vbl9yb2xs aW5nX2xvb3AgKG5ld19sb29wKTsKKwogICAvKiBEZXRlcm1pbmUgdGhlIHBy b2JhYmlsaXR5IG9mIHRoZSBleGl0IGVkZ2Ugb2YgdGhlIHVucm9sbGVkIGxv b3AuICAqLwogICBuZXdfZXN0X25pdGVyID0gZXN0X25pdGVyIC8gZmFjdG9y OwogCmRpZmYgLS1naXQgYS9nY2MvdHJlZS1zc2EtbG9vcC1uaXRlci5jIGIv Z2NjL3RyZWUtc3NhLWxvb3Atbml0ZXIuYwppbmRleCBlZTg1ZjZmLi5lYzEw OGMyIDEwMDY0NAotLS0gYS9nY2MvdHJlZS1zc2EtbG9vcC1uaXRlci5jCisr KyBiL2djYy90cmVlLXNzYS1sb29wLW5pdGVyLmMKQEAgLTMwMTEsNiArMzAx MSwyNiBAQCBlc3RpbWF0ZV9udW1iZXJzX29mX2l0ZXJhdGlvbnMgKGJvb2wg dXNlX3VuZGVmaW5lZF9wKQogICBmb2xkX3VuZGVmZXJfYW5kX2lnbm9yZV9v dmVyZmxvd193YXJuaW5ncyAoKTsKIH0KIAorLyogTWFyayBMT09QIGFzIGEg bm9uLXJvbGxpbmcgbG9vcC4gICovCisKK3ZvaWQKK21hcmtfbm9uX3JvbGxp bmdfbG9vcCAoc3RydWN0IGxvb3AgKmxvb3ApCit7CisgIGdjY19hc3NlcnQg KGxvb3AgJiYgbG9vcC0+aGVhZGVyKTsKKyAgbG9vcC0+aGVhZGVyLT5mbGFn cyB8PSBCQl9IRUFERVJfT0ZfTk9OUk9MTElOR19MT09QOworfQorCisvKiBS ZXR1cm4gdHJ1ZSBpZiBMT09QIGlzIGEgbm9uLXJvbGxpbmcgbG9vcC4gICov CisKK2Jvb2wKK25vbl9yb2xsaW5nX2xvb3BfcCAoc3RydWN0IGxvb3AgKmxv b3ApCit7CisgIGludCBtYXNrZWRfZmxhZ3M7CisgIGdjY19hc3NlcnQgKGxv b3AgJiYgbG9vcC0+aGVhZGVyKTsKKyAgbWFza2VkX2ZsYWdzID0gKGxvb3At PmhlYWRlci0+ZmxhZ3MgJiBCQl9IRUFERVJfT0ZfTk9OUk9MTElOR19MT09Q KTsKKyByZXR1cm4gKG1hc2tlZF9mbGFncyAhPSAwKTsKK30KKwogLyogUmV0 dXJucyB0cnVlIGlmIHN0YXRlbWVudCBTMSBkb21pbmF0ZXMgc3RhdGVtZW50 IFMyLiAgKi8KIAogYm9vbApkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1s b29wLW1hbmlwLmMgYi9nY2MvdHJlZS12ZWN0LWxvb3AtbWFuaXAuYwppbmRl eCAyOGI3NWYxLi45YmJlNjhiIDEwMDY0NAotLS0gYS9nY2MvdHJlZS12ZWN0 LWxvb3AtbWFuaXAuYworKysgYi9nY2MvdHJlZS12ZWN0LWxvb3AtbWFuaXAu YwpAQCAtMTkzOCw2ICsxOTM4LDEwIEBAIHZlY3RfZG9fcGVlbGluZ19mb3Jf bG9vcF9ib3VuZCAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZvLCB0cmVlICpy YXRpbywKIAkJCQkJICAgIGNvbmRfZXhwciwgY29uZF9leHByX3N0bXRfbGlz dCk7CiAgIGdjY19hc3NlcnQgKG5ld19sb29wKTsKICAgZ2NjX2Fzc2VydCAo bG9vcF9udW0gPT0gbG9vcC0+bnVtKTsKKworICAvKiBORVdfTE9PUCBpcyBh IG5vbi1yb2xsaW5nIGxvb3AuICAqLworICBtYXJrX25vbl9yb2xsaW5nX2xv b3AgKG5ld19sb29wKTsKKwogI2lmZGVmIEVOQUJMRV9DSEVDS0lORwogICBz bHBlZWxfdmVyaWZ5X2NmZ19hZnRlcl9wZWVsaW5nIChsb29wLCBuZXdfbG9v cCk7CiAjZW5kaWYKQEAgLTIxOTEsNiArMjE5NSwxMCBAQCB2ZWN0X2RvX3Bl ZWxpbmdfZm9yX2FsaWdubWVudCAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZv KQogCQkJCSAgIHRoLCB0cnVlLCBOVUxMX1RSRUUsIE5VTEwpOwogCiAgIGdj Y19hc3NlcnQgKG5ld19sb29wKTsKKworICAvKiBORVdfTE9PUCBpcyBhIG5v bi1yb2xsaW5nIGxvb3AuICAqLworICBtYXJrX25vbl9yb2xsaW5nX2xvb3Ag KG5ld19sb29wKTsKKwogI2lmZGVmIEVOQUJMRV9DSEVDS0lORwogICBzbHBl ZWxfdmVyaWZ5X2NmZ19hZnRlcl9wZWVsaW5nIChuZXdfbG9vcCwgbG9vcCk7 CiAjZW5kaWYKLS0gCjEuNi4zLjMKCg== --_002_D4C76825A6780047854A11E93CDE84D004C176842FSAUSEXMBP01am_--