From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 49414 invoked by alias); 29 Mar 2017 15:22:53 -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 49401 invoked by uid 89); 29 Mar 2017 15:22:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-vk0-f46.google.com Received: from mail-vk0-f46.google.com (HELO mail-vk0-f46.google.com) (209.85.213.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 29 Mar 2017 15:22:49 +0000 Received: by mail-vk0-f46.google.com with SMTP id d188so21624579vka.0 for ; Wed, 29 Mar 2017 08:22:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Rpcy6kplMZaML9eoji+n6rJiggGbWpQONfo87kzGWfA=; b=AdCFKWzYh6eS+CCWPJDGWO9Ln54Gbwrb1SKh3FXOdiBzLkeKNBy6fUu3Yq4YnJcKYo fz/hdZIn90i2j+IKRK4dQyArnzUCtMF9ztkYHE+t+ECd8gi7qpc1Yin/T1jv5jxD3ZM0 qjMz/7dnAzoP27RWOnoj7VMXh4leRs8joENFoFioaSRuYvIgRVvNhVH92C44ijCmZct+ cGAhAQqfX1AeeqkM++MEjfsUNmOmLTHeJj0vmwPxDX2Wr3aNgaTEPsSrdKI1lX8N+CfE 4MQecswdJpaRZ2fsQ4mT68fkSeMoEb8eNEk5B+U8pTJsgDPJI/9BoDYAzm5vZEYyoHHH Yv2A== X-Gm-Message-State: AFeK/H3bfVWTwwTHhcH3Whx9ohhQaOgtJiJuaIATxlgspzMuh7PlBSxjNmlSy4xSdvse0/Y2LLlgx5kyB+zxGg== X-Received: by 10.31.147.11 with SMTP id v11mr523787vkd.126.1490800969219; Wed, 29 Mar 2017 08:22:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.12.129 with HTTP; Wed, 29 Mar 2017 08:22:48 -0700 (PDT) In-Reply-To: References: From: "Bin.Cheng" Date: Wed, 29 Mar 2017 15:32:00 -0000 Message-ID: Subject: Re: [PATCH PR80153]Always generate folded type conversion in tree-affine To: Richard Biener Cc: Bin Cheng , "gcc-patches@gcc.gnu.org" , nd Content-Type: multipart/mixed; boundary=001a1141f83a33d5a2054be026a8 X-IsSubscribed: yes X-SW-Source: 2017-03/txt/msg01476.txt.bz2 --001a1141f83a33d5a2054be026a8 Content-Type: text/plain; charset=UTF-8 Content-length: 3979 On Tue, Mar 28, 2017 at 1:34 PM, Richard Biener wrote: > On Tue, Mar 28, 2017 at 2:01 PM, Bin Cheng wrote: >> Hi, >> This patch is to fix PR80153. As analyzed in the PR, root cause is tree_affine lacks >> ability differentiating (unsigned)(ptr + offset) and (unsigned)ptr + (unsigned)offset, >> even worse, it always returns the former expression in aff_combination_tree, which >> is wrong if the original expression has the latter form. The patch resolves the issue >> by always returning the latter form expression, i.e, always trying to generate folded >> expression. Also as analyzed in comment, I think this change won't result in substantial >> code gen difference. >> I also need to adjust get_computation_aff for test case gcc.dg/tree-ssa/reassoc-19.c. >> Well, I think the changed behavior is correct, but for case the original pointer candidate >> is chosen, it should be unnecessary to compute in uutype. Also this adjustment only >> generates (unsigned)(pointer + offset) which is generated by tree-affine.c. >> Bootstrap and test on x86_64 and AArch64. Is it OK? > Thanks for reviewing. > Hmm. What is the desired goal? To have all elts added have > comb->type as type? Then > the type passed to add_elt_to_tree is redundant with comb->type. It > looks like it > is always passed comb->type now. Yes, except pointer type comb->type, elts are converted to comb->type with this patch. The redundant type is removed in updated patch. > > ISTR from past work in this area that it was important for pointer > combinations to allow > both pointer and sizetype elts at least. Yes, It's still important to allow different types for pointer and offset in pointer type comb. I missed a pointer type check condition in the patch, fixed in updated patch. > > Your change is incomplete I think, for the scale == -1 and POINTER_TYPE_P case > elt is sizetype now, not of pointer type. As said above, we are > trying to maintain > both pointer and sizetype elts with like: > > if (scale == 1) > { > if (!expr) > { > if (POINTER_TYPE_P (TREE_TYPE (elt))) > return elt; > else > return fold_convert (type1, elt); > } > > where your earilier fold to type would result in not all cases handled the same > (depending whether scale was -1 for example). IIUC, it doesn't matter. For comb->type being pointer type, the behavior remains the same. For comb->type being unsigned T, this elt is converted to ptr_offtype, rather than unsigned T, this doesn't matter because ptr_offtype and unsigned T are equal to each other, otherwise tree_to_aff_combination shouldn't distribute it as a single elt. Anyway, this is addressed in updated patch by checking pointer comb->type additionally. BTW, I think "scale==-1" case is a simple heuristic differentiating pointer_base and offset. > > Thus - shouldn't we simply drop the type argument (or rather the comb one? > that wide_int_ext_for_comb looks weird given we get a widest_int as input > and all the other wide_int_ext_for_comb calls around). > > And unconditionally convert to type, simplifying the rest of the code? As said, for pointer type comb, we need to keep current behavior; for other cases, unconditionally convert to comb->type is the goal. Bootstrap and test on x86_64 and AArch64. Is this version OK? Thanks, bin 2017-03-28 Bin Cheng PR tree-optimization/80153 * tree-affine.c (add_elt_to_tree): Remove parameter TYPE. Use type of parameter COMB. Convert elt to type of COMB it COMB is not of pointer type. (aff_combination_to_tree): Update calls to add_elt_to_tree. * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types. (get_computation_aff): Use utype directly for original candidate. gcc/testsuite/ChangeLog 2017-03-28 Bin Cheng PR tree-optimization/80153 * gcc.c-torture/execute/pr80153.c: New. --001a1141f83a33d5a2054be026a8 Content-Type: text/plain; charset=US-ASCII; name="pr80153-20170328.txt" Content-Disposition: attachment; filename="pr80153-20170328.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j0v4ed760 Content-length: 9350 ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVj dXRlL3ByODAxNTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9l eGVjdXRlL3ByODAxNTMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4zZWVkNTc4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvcHI4MDE1My5jCkBAIC0wLDAg KzEsNDggQEAKKy8qIFBSIHRyZWUtb3B0aW1pemF0aW9uLzgwMTUzICovCisK K3ZvaWQgY2hlY2sgKGludCwgaW50LCBpbnQpIF9fYXR0cmlidXRlX18oKG5v aW5saW5lKSk7Cit2b2lkIGNoZWNrIChpbnQgYywgaW50IGMyLCBpbnQgdmFs KQoreworICBpZiAoIXZhbCkgeworICAgIF9fYnVpbHRpbl9hYm9ydCgpOwor ICB9Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpidWY7CitzdGF0aWMgaW50 IGwsIGk7CisKK3ZvaWQgX2ZwdXRzKGNvbnN0IGNoYXIgKnN0cikgIF9fYXR0 cmlidXRlX18oKG5vaW5saW5lKSk7Cit2b2lkIF9mcHV0cyhjb25zdCBjaGFy ICpzdHIpCit7CisgIGJ1ZiA9IHN0cjsKKyAgaSA9IDA7CisgIGwgPSBfX2J1 aWx0aW5fc3RybGVuKGJ1Zik7Cit9CisKK2NoYXIgX2ZnZXRjKCkgX19hdHRy aWJ1dGVfXygobm9pbmxpbmUpKTsKK2NoYXIgX2ZnZXRjKCkKK3sKKyAgY2hh ciB2YWwgPSBidWZbaV07CisgIGkrKzsKKyAgaWYgKGkgPiBsKQorICAgIHJl dHVybiAtMTsKKyAgZWxzZQorICAgIHJldHVybiB2YWw7Cit9CisKK3N0YXRp YyBjb25zdCBjaGFyICpzdHJpbmcgPSAib29wcyFcbiI7CisKK2ludCBtYWlu KHZvaWQpCit7CisgIGludCBpOworICBpbnQgYzsKKworICBfZnB1dHMoc3Ry aW5nKTsKKworICBmb3IgKGkgPSAwOyBpIDwgX19idWlsdGluX3N0cmxlbihz dHJpbmcpOyBpKyspIHsKKyAgICBjID0gX2ZnZXRjKCk7CisgICAgY2hlY2so Yywgc3RyaW5nW2ldLCBjID09IHN0cmluZ1tpXSk7CisgIH0KKworICByZXR1 cm4gMDsKK30KZGlmZiAtLWdpdCBhL2djYy90cmVlLWFmZmluZS5jIGIvZ2Nj L3RyZWUtYWZmaW5lLmMKaW5kZXggZTYyMGVlYS4uYTdmMGI2YSAxMDA2NDQK LS0tIGEvZ2NjL3RyZWUtYWZmaW5lLmMKKysrIGIvZ2NjL3RyZWUtYWZmaW5l LmMKQEAgLTM3MCwyNyArMzcwLDI4IEBAIHRyZWVfdG9fYWZmX2NvbWJpbmF0 aW9uICh0cmVlIGV4cHIsIHRyZWUgdHlwZSwgYWZmX3RyZWUgKmNvbWIpCiAg IGFmZl9jb21iaW5hdGlvbl9lbHQgKGNvbWIsIHR5cGUsIGV4cHIpOwogfQog Ci0vKiBDcmVhdGVzIEVYUFIgKyBFTFQgKiBTQ0FMRSBpbiBUWVBFLiAgRVhQ UiBpcyB0YWtlbiBmcm9tIGFmZmluZQorLyogQ3JlYXRlcyBFWFBSICsgRUxU ICogU0NBTEUgaW4gQ09NQidzIHR5cGUuICBFWFBSIGlzIHRha2VuIGZyb20g YWZmaW5lCiAgICBjb21iaW5hdGlvbiBDT01CLiAgKi8KIAogc3RhdGljIHRy ZWUKLWFkZF9lbHRfdG9fdHJlZSAodHJlZSBleHByLCB0cmVlIHR5cGUsIHRy ZWUgZWx0LCBjb25zdCB3aWRlc3RfaW50ICZzY2FsZV9pbiwKLQkJIGFmZl90 cmVlICpjb21iIEFUVFJJQlVURV9VTlVTRUQpCithZGRfZWx0X3RvX3RyZWUg KHRyZWUgZXhwciwgdHJlZSBlbHQsIGNvbnN0IHdpZGVzdF9pbnQgJnNjYWxl X2luLAorCQkgYWZmX3RyZWUgKmNvbWIpCiB7CiAgIGVudW0gdHJlZV9jb2Rl IGNvZGU7Ci0gIHRyZWUgdHlwZTEgPSB0eXBlOwotICBpZiAoUE9JTlRFUl9U WVBFX1AgKHR5cGUpKQotICAgIHR5cGUxID0gc2l6ZXR5cGU7CisgIHRyZWUg dHlwZSA9IFBPSU5URVJfVFlQRV9QIChjb21iLT50eXBlKSA/IHNpemV0eXBl IDogY29tYi0+dHlwZTsKIAogICB3aWRlc3RfaW50IHNjYWxlID0gd2lkZV9p bnRfZXh0X2Zvcl9jb21iIChzY2FsZV9pbiwgY29tYik7CiAKICAgaWYgKHNj YWxlID09IC0xCisgICAgICAmJiBQT0lOVEVSX1RZUEVfUCAoY29tYi0+dHlw ZSkKICAgICAgICYmIFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKGVsdCkp KQogICAgIHsKICAgICAgIGVsdCA9IGNvbnZlcnRfdG9fcHRyb2ZmdHlwZSAo ZWx0KTsKICAgICAgIGVsdCA9IGZvbGRfYnVpbGQxIChORUdBVEVfRVhQUiwg VFJFRV9UWVBFIChlbHQpLCBlbHQpOwogICAgICAgc2NhbGUgPSAxOwogICAg IH0KKyAgZWxzZSBpZiAoIVBPSU5URVJfVFlQRV9QIChjb21iLT50eXBlKSkK KyAgICBlbHQgPSBmb2xkX2NvbnZlcnQgKGNvbWItPnR5cGUsIGVsdCk7CiAK ICAgaWYgKHNjYWxlID09IDEpCiAgICAgewpAQCAtMzk5LDIyICs0MDAsMjAg QEAgYWRkX2VsdF90b190cmVlICh0cmVlIGV4cHIsIHRyZWUgdHlwZSwgdHJl ZSBlbHQsIGNvbnN0IHdpZGVzdF9pbnQgJnNjYWxlX2luLAogCSAgaWYgKFBP SU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKGVsdCkpKQogCSAgICByZXR1cm4g ZWx0OwogCSAgZWxzZQotCSAgICByZXR1cm4gZm9sZF9jb252ZXJ0ICh0eXBl MSwgZWx0KTsKKwkgICAgcmV0dXJuIGZvbGRfY29udmVydCAodHlwZSwgZWx0 KTsKIAl9CiAKICAgICAgIGlmIChQT0lOVEVSX1RZUEVfUCAoVFJFRV9UWVBF IChleHByKSkpCiAJcmV0dXJuIGZvbGRfYnVpbGRfcG9pbnRlcl9wbHVzIChl eHByLCBlbHQpOwogICAgICAgaWYgKFBPSU5URVJfVFlQRV9QIChUUkVFX1RZ UEUgKGVsdCkpKQogCXJldHVybiBmb2xkX2J1aWxkX3BvaW50ZXJfcGx1cyAo ZWx0LCBleHByKTsKLSAgICAgIHJldHVybiBmb2xkX2J1aWxkMiAoUExVU19F WFBSLCB0eXBlMSwKLQkJCSAgZXhwciwgZm9sZF9jb252ZXJ0ICh0eXBlMSwg ZWx0KSk7CisgICAgICByZXR1cm4gZm9sZF9idWlsZDIgKFBMVVNfRVhQUiwg dHlwZSwgZXhwciwgZm9sZF9jb252ZXJ0ICh0eXBlLCBlbHQpKTsKICAgICB9 CiAKICAgaWYgKHNjYWxlID09IC0xKQogICAgIHsKICAgICAgIGlmICghZXhw cikKLQlyZXR1cm4gZm9sZF9idWlsZDEgKE5FR0FURV9FWFBSLCB0eXBlMSwK LQkJCSAgICBmb2xkX2NvbnZlcnQgKHR5cGUxLCBlbHQpKTsKKwlyZXR1cm4g Zm9sZF9idWlsZDEgKE5FR0FURV9FWFBSLCB0eXBlLCBmb2xkX2NvbnZlcnQg KHR5cGUsIGVsdCkpOwogCiAgICAgICBpZiAoUE9JTlRFUl9UWVBFX1AgKFRS RUVfVFlQRSAoZXhwcikpKQogCXsKQEAgLTQyMiwxNCArNDIxLDEyIEBAIGFk ZF9lbHRfdG9fdHJlZSAodHJlZSBleHByLCB0cmVlIHR5cGUsIHRyZWUgZWx0 LCBjb25zdCB3aWRlc3RfaW50ICZzY2FsZV9pbiwKIAkgIGVsdCA9IGZvbGRf YnVpbGQxIChORUdBVEVfRVhQUiwgVFJFRV9UWVBFIChlbHQpLCBlbHQpOwog CSAgcmV0dXJuIGZvbGRfYnVpbGRfcG9pbnRlcl9wbHVzIChleHByLCBlbHQp OwogCX0KLSAgICAgIHJldHVybiBmb2xkX2J1aWxkMiAoTUlOVVNfRVhQUiwg dHlwZTEsCi0JCQkgIGV4cHIsIGZvbGRfY29udmVydCAodHlwZTEsIGVsdCkp OworICAgICAgcmV0dXJuIGZvbGRfYnVpbGQyIChNSU5VU19FWFBSLCB0eXBl LCBleHByLCBmb2xkX2NvbnZlcnQgKHR5cGUsIGVsdCkpOwogICAgIH0KIAot ICBlbHQgPSBmb2xkX2NvbnZlcnQgKHR5cGUxLCBlbHQpOworICBlbHQgPSBm b2xkX2NvbnZlcnQgKHR5cGUsIGVsdCk7CiAgIGlmICghZXhwcikKLSAgICBy ZXR1cm4gZm9sZF9idWlsZDIgKE1VTFRfRVhQUiwgdHlwZTEsIGVsdCwKLQkJ CXdpZGVfaW50X3RvX3RyZWUgKHR5cGUxLCBzY2FsZSkpOworICAgIHJldHVy biBmb2xkX2J1aWxkMiAoTVVMVF9FWFBSLCB0eXBlLCBlbHQsIHdpZGVfaW50 X3RvX3RyZWUgKHR5cGUsIHNjYWxlKSk7CiAKICAgaWYgKHdpOjpuZWdfcCAo c2NhbGUpKQogICAgIHsKQEAgLTQzOSwxNSArNDM2LDE0IEBAIGFkZF9lbHRf dG9fdHJlZSAodHJlZSBleHByLCB0cmVlIHR5cGUsIHRyZWUgZWx0LCBjb25z dCB3aWRlc3RfaW50ICZzY2FsZV9pbiwKICAgZWxzZQogICAgIGNvZGUgPSBQ TFVTX0VYUFI7CiAKLSAgZWx0ID0gZm9sZF9idWlsZDIgKE1VTFRfRVhQUiwg dHlwZTEsIGVsdCwKLQkJICAgICB3aWRlX2ludF90b190cmVlICh0eXBlMSwg c2NhbGUpKTsKKyAgZWx0ID0gZm9sZF9idWlsZDIgKE1VTFRfRVhQUiwgdHlw ZSwgZWx0LCB3aWRlX2ludF90b190cmVlICh0eXBlLCBzY2FsZSkpOwogICBp ZiAoUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoZXhwcikpKQogICAgIHsK ICAgICAgIGlmIChjb2RlID09IE1JTlVTX0VYUFIpCi0gICAgICAgIGVsdCA9 IGZvbGRfYnVpbGQxIChORUdBVEVfRVhQUiwgdHlwZTEsIGVsdCk7CisgICAg ICAgIGVsdCA9IGZvbGRfYnVpbGQxIChORUdBVEVfRVhQUiwgdHlwZSwgZWx0 KTsKICAgICAgIHJldHVybiBmb2xkX2J1aWxkX3BvaW50ZXJfcGx1cyAoZXhw ciwgZWx0KTsKICAgICB9Ci0gIHJldHVybiBmb2xkX2J1aWxkMiAoY29kZSwg dHlwZTEsIGV4cHIsIGVsdCk7CisgIHJldHVybiBmb2xkX2J1aWxkMiAoY29k ZSwgdHlwZSwgZXhwciwgZWx0KTsKIH0KIAogLyogTWFrZXMgdHJlZSBmcm9t IHRoZSBhZmZpbmUgY29tYmluYXRpb24gQ09NQi4gICovCkBAIC00NTUsMjIg KzQ1MSwxOCBAQCBhZGRfZWx0X3RvX3RyZWUgKHRyZWUgZXhwciwgdHJlZSB0 eXBlLCB0cmVlIGVsdCwgY29uc3Qgd2lkZXN0X2ludCAmc2NhbGVfaW4sCiB0 cmVlCiBhZmZfY29tYmluYXRpb25fdG9fdHJlZSAoYWZmX3RyZWUgKmNvbWIp CiB7Ci0gIHRyZWUgdHlwZSA9IGNvbWItPnR5cGU7CiAgIHRyZWUgZXhwciA9 IE5VTExfVFJFRTsKICAgdW5zaWduZWQgaTsKICAgd2lkZXN0X2ludCBvZmYs IHNnbjsKLSAgdHJlZSB0eXBlMSA9IHR5cGU7Ci0gIGlmIChQT0lOVEVSX1RZ UEVfUCAodHlwZSkpCi0gICAgdHlwZTEgPSBzaXpldHlwZTsKKyAgdHJlZSB0 eXBlID0gUE9JTlRFUl9UWVBFX1AgKGNvbWItPnR5cGUpID8gc2l6ZXR5cGUg OiBjb21iLT50eXBlOwogCiAgIGdjY19hc3NlcnQgKGNvbWItPm4gPT0gTUFY X0FGRl9FTFRTIHx8IGNvbWItPnJlc3QgPT0gTlVMTF9UUkVFKTsKIAogICBm b3IgKGkgPSAwOyBpIDwgY29tYi0+bjsgaSsrKQotICAgIGV4cHIgPSBhZGRf ZWx0X3RvX3RyZWUgKGV4cHIsIHR5cGUsIGNvbWItPmVsdHNbaV0udmFsLCBj b21iLT5lbHRzW2ldLmNvZWYsCi0JCQkgICAgY29tYik7CisgICAgZXhwciA9 IGFkZF9lbHRfdG9fdHJlZSAoZXhwciwgY29tYi0+ZWx0c1tpXS52YWwsIGNv bWItPmVsdHNbaV0uY29lZiwgY29tYik7CiAKICAgaWYgKGNvbWItPnJlc3Qp Ci0gICAgZXhwciA9IGFkZF9lbHRfdG9fdHJlZSAoZXhwciwgdHlwZSwgY29t Yi0+cmVzdCwgMSwgY29tYik7CisgICAgZXhwciA9IGFkZF9lbHRfdG9fdHJl ZSAoZXhwciwgY29tYi0+cmVzdCwgMSwgY29tYik7CiAKICAgLyogRW5zdXJl IHRoYXQgd2UgZ2V0IHggLSAxLCBub3QgeCArICgtMSkgb3IgeCArIDB4ZmYu LmYgaWYgeCBpcwogICAgICB1bnNpZ25lZC4gICovCkBAIC00ODQsOCArNDc2 LDcgQEAgYWZmX2NvbWJpbmF0aW9uX3RvX3RyZWUgKGFmZl90cmVlICpjb21i KQogICAgICAgb2ZmID0gY29tYi0+b2Zmc2V0OwogICAgICAgc2duID0gMTsK ICAgICB9Ci0gIHJldHVybiBhZGRfZWx0X3RvX3RyZWUgKGV4cHIsIHR5cGUs IHdpZGVfaW50X3RvX3RyZWUgKHR5cGUxLCBvZmYpLCBzZ24sCi0JCQkgIGNv bWIpOworICByZXR1cm4gYWRkX2VsdF90b190cmVlIChleHByLCB3aWRlX2lu dF90b190cmVlICh0eXBlLCBvZmYpLCBzZ24sIGNvbWIpOwogfQogCiAvKiBD b3BpZXMgdGhlIHRyZWUgZWxlbWVudHMgb2YgQ09NQiB0byBlbnN1cmUgdGhh dCB0aGV5IGFyZSBub3Qgc2hhcmVkLiAgKi8KZGlmZiAtLWdpdCBhL2djYy90 cmVlLXNzYS1sb29wLWl2b3B0cy5jIGIvZ2NjL3RyZWUtc3NhLWxvb3AtaXZv cHRzLmMKaW5kZXggOGRjNjU4ODEuLmZhOTkzYWIgMTAwNjQ0Ci0tLSBhL2dj Yy90cmVlLXNzYS1sb29wLWl2b3B0cy5jCisrKyBiL2djYy90cmVlLXNzYS1s b29wLWl2b3B0cy5jCkBAIC0xMTcxLDcgKzExNzEsNyBAQCBhbGxvY19pdiAo c3RydWN0IGl2b3B0c19kYXRhICpkYXRhLCB0cmVlIGJhc2UsIHRyZWUgc3Rl cCwKICAgICAgIHx8IGNvbnRhaW5fY29tcGxleF9hZGRyX2V4cHIgKGV4cHIp KQogICAgIHsKICAgICAgIGFmZl90cmVlIGNvbWI7Ci0gICAgICB0cmVlX3Rv X2FmZl9jb21iaW5hdGlvbiAoZXhwciwgVFJFRV9UWVBFIChiYXNlKSwgJmNv bWIpOworICAgICAgdHJlZV90b19hZmZfY29tYmluYXRpb24gKGV4cHIsIFRS RUVfVFlQRSAoZXhwciksICZjb21iKTsKICAgICAgIGJhc2UgPSBmb2xkX2Nv bnZlcnQgKFRSRUVfVFlQRSAoYmFzZSksIGFmZl9jb21iaW5hdGlvbl90b190 cmVlICgmY29tYikpOwogICAgIH0KIApAQCAtMzc4Nyw2ICszNzg3LDEyIEBA IGdldF9jb21wdXRhdGlvbl9hZmYgKHN0cnVjdCBsb29wICpsb29wLAogICAg ICBvdmVyZmxvd3MsIGFzIGFsbCB0aGUgYXJpdGhtZXRpY3Mgd2lsbCBpbiB0 aGUgZW5kIGJlIHBlcmZvcm1lZCBpbiBVVVRZUEUKICAgICAgYW55d2F5LiAg Ki8KICAgY29tbW9uX3R5cGUgPSBkZXRlcm1pbmVfY29tbW9uX3dpZGVyX3R5 cGUgKCZ1YmFzZSwgJmNiYXNlKTsKKyAgLyogV2UgZG9uJ3QgbmVlZCB0byBj b21wdXRlIGluIFVVVFlQRSBpZiB0aGlzIGlzIHRoZSBvcmlnaW5hbCBjYW5k aWRhdGUsCisgICAgIGFuZCBjYW5kaWRhdGUvdXNlIGhhdmUgdGhlIHNhbWUg KHBvaW50ZXIpIHR5cGUuICAqLworICBpZiAoY3R5cGUgPT0gdXR5cGUgJiYg Y29tbW9uX3R5cGUgPT0gdXR5cGUKKyAgICAgICYmIFBPSU5URVJfVFlQRV9Q ICh1dHlwZSkgJiYgVFlQRV9VTlNJR05FRCAodXR5cGUpCisgICAgICAmJiBj YW5kLT5wb3MgPT0gSVBfT1JJR0lOQUwgJiYgY2FuZC0+aW5jcmVtZW50ZWRf YXQgPT0gdXNlLT5zdG10KQorICAgIHV1dHlwZSA9IHV0eXBlOwogCiAgIC8q IHVzZSA9IHViYXNlIC0gcmF0aW8gKiBjYmFzZSArIHJhdGlvICogdmFyLiAg Ki8KICAgdHJlZV90b19hZmZfY29tYmluYXRpb24gKHViYXNlLCBjb21tb25f dHlwZSwgYWZmKTsK --001a1141f83a33d5a2054be026a8--