From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11531 invoked by alias); 17 Oct 2014 20:41:24 -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 11517 invoked by uid 89); 17 Oct 2014 20:41:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mail2-relais-roc.national.inria.fr Received: from mail2-relais-roc.national.inria.fr (HELO mail2-relais-roc.national.inria.fr) (192.134.164.83) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Fri, 17 Oct 2014 20:41:22 +0000 Received: from stedding.saclay.inria.fr (HELO stedding) ([193.55.250.194]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/AES128-SHA; 17 Oct 2014 22:41:19 +0200 Received: from glisse (helo=localhost) by stedding with local-esmtp (Exim 4.84) (envelope-from ) id 1XfEKt-00082f-0w; Fri, 17 Oct 2014 22:41:19 +0200 Date: Fri, 17 Oct 2014 20:46:00 -0000 From: Marc Glisse To: Jeff Law cc: Richard Biener , GCC Patches Subject: Re: update address taken: don't drop clobbers In-Reply-To: <54400741.9010203@redhat.com> Message-ID: References: <543E9BED.4070905@redhat.com> <543FFFD8.4090406@redhat.com> <6255313F-DDD4-4DA6-B07E-832B251E167F@gmail.com> <54400741.9010203@redhat.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1341249952-1413578479=:30896" X-SW-Source: 2014-10/txt/msg01788.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1341249952-1413578479=:30896 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Content-length: 724 On Thu, 16 Oct 2014, Jeff Law wrote: >> BTW, I dislike having multiple DCE implementations... > Similarly. The proposal above was just to determine if we should schedule > DCE or not. Thinking about it some more, I don't think we should need any kind of DCE here. The rewriting in update_ssa already does a form of forward propagation that avoids generating dead assignments, the problem only occurs if we explicitly introduce this new assignment. So I believe we should go back to an earlier version, like the attached, which is less work for the compiler. And now I can go re-read the old discussion (apparently I should avoid gsi_replace, and there may be other ways to handle the coalescing). -- Marc Glisse --8323329-1341249952-1413578479=:30896 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p1 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p1 Content-length: 11290 SW5kZXg6IHRlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI2MDc3MC0xLmMN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB0ZXN0c3VpdGUvZ2NjLmRn L3RyZWUtc3NhL3ByNjA3NzAtMS5jCShyZXZpc2lvbiAwKQ0KKysrIHRlc3Rz dWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI2MDc3MC0xLmMJKHdvcmtpbmcgY29w eSkNCkBAIC0wLDAgKzEsMTEgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLU8gLVdhbGwiIH0gKi8NCisNCitpbnQg ZihpbnQgbil7DQorICBpbnQqcDsNCisgIHsNCisgICAgaW50IHl5eT1uOw0K KyAgICBwPSZ5eXk7DQorICB9DQorICByZXR1cm4gKnA7IC8qIHsgZGctd2Fy bmluZyAieXl5IiB9ICovDQorfQ0KSW5kZXg6IHRyZWUtaW50by1zc2EuYw0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHRyZWUtaW50by1zc2EuYwko cmV2aXNpb24gMjE2Mzg0KQ0KKysrIHRyZWUtaW50by1zc2EuYwkod29ya2lu ZyBjb3B5KQ0KQEAgLTE4MzcsMjYgKzE4MzcsMzUgQEAgbWF5YmVfcmVnaXN0 ZXJfZGVmIChkZWZfb3BlcmFuZF9wIGRlZl9wLA0KIHsNCiAgIHRyZWUgZGVm ID0gREVGX0ZST01fUFRSIChkZWZfcCk7DQogICB0cmVlIHN5bSA9IERFQ0xf UCAoZGVmKSA/IGRlZiA6IFNTQV9OQU1FX1ZBUiAoZGVmKTsNCiANCiAgIC8q IElmIERFRiBpcyBhIG5ha2VkIHN5bWJvbCB0aGF0IG5lZWRzIHJlbmFtaW5n LCBjcmVhdGUgYSBuZXcNCiAgICAgIG5hbWUgZm9yIGl0LiAgKi8NCiAgIGlm IChtYXJrZWRfZm9yX3JlbmFtaW5nIChzeW0pKQ0KICAgICB7DQogICAgICAg aWYgKERFQ0xfUCAoZGVmKSkNCiAJew0KLQkgIHRyZWUgdHJhY2tlZF92YXI7 DQotDQotCSAgZGVmID0gbWFrZV9zc2FfbmFtZSAoZGVmLCBzdG10KTsNCisJ ICBpZiAoZ2ltcGxlX2Nsb2JiZXJfcCAoc3RtdCkgJiYgaXNfZ2ltcGxlX3Jl ZyAoc3ltKSkNCisJICAgIHsNCisJICAgICAgLyogUmVwbGFjZSBjbG9iYmVy IHN0bXRzIHdpdGggYSBkZWZhdWx0IGRlZi4gVGhpcyBuZXcgdXNlIG9mIGEN CisJCSBkZWZhdWx0IGRlZmluaXRpb24gbWF5IG1ha2UgaXQgbG9vayBsaWtl IFNTQV9OQU1FcyBoYXZlDQorCQkgY29uZmxpY3RpbmcgbGlmZXRpbWVzLCBz byB3ZSBuZWVkIHNwZWNpYWwgY29kZSB0byBsZXQgdGhlbQ0KKwkJIGNvYWxl c2NlIHByb3Blcmx5LiAgKi8NCisJICAgICAgdW5saW5rX3N0bXRfdmRlZiAo c3RtdCk7DQorCSAgICAgIGdzaV9yZXBsYWNlICgmZ3NpLCBnaW1wbGVfYnVp bGRfbm9wICgpLCB0cnVlKTsNCisJICAgICAgZGVmID0gZ2V0X29yX2NyZWF0 ZV9zc2FfZGVmYXVsdF9kZWYgKGNmdW4sIHN5bSk7DQorCSAgICB9DQorCSAg ZWxzZQ0KKwkgICAgZGVmID0gbWFrZV9zc2FfbmFtZSAoZGVmLCBzdG10KTsN CiAJICBTRVRfREVGIChkZWZfcCwgZGVmKTsNCiANCi0JICB0cmFja2VkX3Zh ciA9IHRhcmdldF9mb3JfZGVidWdfYmluZCAoc3ltKTsNCisJICB0cmVlIHRy YWNrZWRfdmFyID0gdGFyZ2V0X2Zvcl9kZWJ1Z19iaW5kIChzeW0pOw0KIAkg IGlmICh0cmFja2VkX3ZhcikNCiAJICAgIHsNCiAJICAgICAgZ2ltcGxlIG5v dGUgPSBnaW1wbGVfYnVpbGRfZGVidWdfYmluZCAodHJhY2tlZF92YXIsIGRl Ziwgc3RtdCk7DQogCSAgICAgIC8qIElmIHN0bXQgZW5kcyB0aGUgYmIsIGlu c2VydCB0aGUgZGVidWcgc3RtdCBvbiB0aGUgc2luZ2xlDQogCQkgbm9uLUVI IGVkZ2UgZnJvbSB0aGUgc3RtdC4gICovDQogCSAgICAgIGlmIChnc2lfb25l X2JlZm9yZV9lbmRfcCAoZ3NpKSAmJiBzdG10X2VuZHNfYmJfcCAoc3RtdCkp DQogCQl7DQogCQkgIGJhc2ljX2Jsb2NrIGJiID0gZ3NpX2JiIChnc2kpOw0K IAkJICBlZGdlX2l0ZXJhdG9yIGVpOw0KIAkJICBlZGdlIGUsIGVmID0gTlVM TDsNCkluZGV4OiB0cmVlLXNzYS1saXZlLmMNCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCi0tLSB0cmVlLXNzYS1saXZlLmMJKHJldmlzaW9uIDIxNjM4NCkN CisrKyB0cmVlLXNzYS1saXZlLmMJKHdvcmtpbmcgY29weSkNCkBAIC00MCwy MCArNDAsMjEgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZ SU5HMy4NCiAjaW5jbHVkZSAic3RyaW5ncG9vbC5oIg0KICNpbmNsdWRlICJ0 cmVlLXNzYW5hbWVzLmgiDQogI2luY2x1ZGUgImV4cHIuaCINCiAjaW5jbHVk ZSAidHJlZS1kZmEuaCINCiAjaW5jbHVkZSAidGltZXZhci5oIg0KICNpbmNs dWRlICJkdW1wZmlsZS5oIg0KICNpbmNsdWRlICJ0cmVlLXNzYS1saXZlLmgi DQogI2luY2x1ZGUgImRpYWdub3N0aWMtY29yZS5oIg0KICNpbmNsdWRlICJk ZWJ1Zy5oIg0KICNpbmNsdWRlICJmbGFncy5oIg0KKyNpbmNsdWRlICJ0cmVl LXNzYS5oIg0KIA0KICNpZmRlZiBFTkFCTEVfQ0hFQ0tJTkcNCiBzdGF0aWMg dm9pZCAgdmVyaWZ5X2xpdmVfb25fZW50cnkgKHRyZWVfbGl2ZV9pbmZvX3Ap Ow0KICNlbmRpZg0KIA0KIA0KIC8qIFZBUk1BUCBtYWludGFpbnMgYSBtYXBw aW5nIGZyb20gU1NBIHZlcnNpb24gbnVtYmVyIHRvIHJlYWwgdmFyaWFibGVz Lg0KIA0KICAgIEFsbCBTU0FfTkFNRVMgYXJlIGRpdmlkZWQgaW50byBwYXJ0 aXRpb25zLiAgSW5pdGlhbGx5IGVhY2ggc3NhX25hbWUgaXMgdGhlDQogICAg b25seSBtZW1iZXIgb2YgaXQncyBvd24gcGFydGl0aW9uLiAgQ29hbGVzY2lu ZyB3aWxsIGF0dGVtcHQgdG8gZ3JvdXAgYW55DQpAQCAtMTA4NiwyMCArMTA4 NywyNCBAQCBzZXRfdmFyX2xpdmVfb25fZW50cnkgKHRyZWUgc3NhX25hbWUs IHRyDQogICBpZiAoc3RtdCkNCiAgICAgew0KICAgICAgIGRlZl9iYiA9IGdp bXBsZV9iYiAoc3RtdCk7DQogICAgICAgLyogTWFyayBkZWZzIGluIGxpdmVv dXQgYml0bWFwIHRlbXBvcmFyaWx5LiAgKi8NCiAgICAgICBpZiAoZGVmX2Ji KQ0KIAliaXRtYXBfc2V0X2JpdCAoJmxpdmUtPmxpdmVvdXRbZGVmX2JiLT5p bmRleF0sIHApOw0KICAgICB9DQogICBlbHNlDQogICAgIGRlZl9iYiA9IEVO VFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pOw0KIA0KKyAgLyogQW4gdW5k ZWZpbmVkIGxvY2FsIHZhcmlhYmxlIGRvZXMgbm90IG5lZWQgdG8gYmUgdmVy eSBhbGl2ZS4gICovDQorICBpZiAoc3NhX3VuZGVmaW5lZF92YWx1ZV9wIChz c2FfbmFtZSwgZmFsc2UpKQ0KKyAgICByZXR1cm47DQorDQogICAvKiBWaXNp dCBlYWNoIHVzZSBvZiBTU0FfTkFNRSBhbmQgaWYgaXQgaXNuJ3QgaW4gdGhl IHNhbWUgYmxvY2sgYXMgdGhlIGRlZiwNCiAgICAgIGFkZCBpdCB0byB0aGUg bGlzdCBvZiBsaXZlIG9uIGVudHJ5IGJsb2Nrcy4gICovDQogICBGT1JfRUFD SF9JTU1fVVNFX0ZBU1QgKHVzZSwgaW1tX2l0ZXIsIHNzYV9uYW1lKQ0KICAg ICB7DQogICAgICAgZ2ltcGxlIHVzZV9zdG10ID0gVVNFX1NUTVQgKHVzZSk7 DQogICAgICAgYmFzaWNfYmxvY2sgYWRkX2Jsb2NrID0gTlVMTDsNCiANCiAg ICAgICBpZiAoZ2ltcGxlX2NvZGUgKHVzZV9zdG10KSA9PSBHSU1QTEVfUEhJ KQ0KICAgICAgICAgew0KIAkgIC8qIFVzZXMgaW4gUEhJJ3MgYXJlIGNvbnNp ZGVyZWQgdG8gYmUgbGl2ZSBhdCBleGl0IG9mIHRoZSBTUkMgYmxvY2sNCkBA IC0xNDIyLDIwICsxNDI3LDI1IEBAIHZlcmlmeV9saXZlX29uX2VudHJ5ICh0 cmVlX2xpdmVfaW5mb19wIGwNCiAJCQkgIGZwcmludGYgKHN0ZGVyciwgIlxu Iik7DQogCQkJfQ0KIAkJICAgICAgZWxzZQ0KIAkJCWZwcmludGYgKHN0ZGVy ciwgIiBhbmQgdGhlcmUgaXMgbm8gZGVmYXVsdCBkZWYuXG4iKTsNCiAJCSAg ICB9DQogCQl9DQogCSAgICB9DQogCSAgZWxzZQ0KIAkgICAgaWYgKGQgPT0g dmFyKQ0KIAkgICAgICB7DQorCQkvKiBBbiB1bmRlZmluZWQgbG9jYWwgdmFy aWFibGUgZG9lcyBub3QgbmVlZCB0byBiZSB2ZXJ5DQorCQkgICBhbGl2ZS4g ICovDQorCQlpZiAoc3NhX3VuZGVmaW5lZF92YWx1ZV9wICh2YXIsIGZhbHNl KSkNCisJCSAgY29udGludWU7DQorDQogCQkvKiBUaGUgb25seSB3YXkgdGhp cyB2YXIgc2hvdWxkbid0IGJlIG1hcmtlZCBsaXZlIG9uIGVudHJ5IGlzDQog CQkgICBpZiBpdCBvY2N1cnMgaW4gYSBQSEkgYXJndW1lbnQgb2YgdGhlIGJs b2NrLiAgKi8NCiAJCXNpemVfdCB6Ow0KIAkJYm9vbCBvayA9IGZhbHNlOw0K IAkJZ2ltcGxlX3N0bXRfaXRlcmF0b3IgZ3NpOw0KIAkJZm9yIChnc2kgPSBn c2lfc3RhcnRfcGhpcyAoZS0+ZGVzdCk7DQogCQkgICAgICFnc2lfZW5kX3Ag KGdzaSkgJiYgIW9rOw0KIAkJICAgICBnc2lfbmV4dCAoJmdzaSkpDQogCQkg IHsNCiAJCSAgICBnaW1wbGUgcGhpID0gZ3NpX3N0bXQgKGdzaSk7DQpJbmRl eDogdHJlZS1zc2EuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHRy ZWUtc3NhLmMJKHJldmlzaW9uIDIxNjM4NCkNCisrKyB0cmVlLXNzYS5jCSh3 b3JraW5nIGNvcHkpDQpAQCAtMTE3OCwyNCArMTE3OCwyNSBAQCB0cmVlX3Nz YV91c2VsZXNzX3R5cGVfY29udmVyc2lvbiAodHJlZSBlDQogDQogdHJlZQ0K IHRyZWVfc3NhX3N0cmlwX3VzZWxlc3NfdHlwZV9jb252ZXJzaW9ucyAodHJl ZSBleHApDQogew0KICAgd2hpbGUgKHRyZWVfc3NhX3VzZWxlc3NfdHlwZV9j b252ZXJzaW9uIChleHApKQ0KICAgICBleHAgPSBUUkVFX09QRVJBTkQgKGV4 cCwgMCk7DQogICByZXR1cm4gZXhwOw0KIH0NCiANCiANCi0vKiBSZXR1cm4g dHJ1ZSBpZiBULCBhbiBTU0FfTkFNRSwgaGFzIGFuIHVuZGVmaW5lZCB2YWx1 ZS4gICovDQorLyogUmV0dXJuIHRydWUgaWYgVCwgYW4gU1NBX05BTUUsIGhh cyBhbiB1bmRlZmluZWQgdmFsdWUuICBQQVJUSUFMIGlzIHdoYXQNCisgICBz aG91bGQgYmUgcmV0dXJuZWQgaWYgdGhlIHZhbHVlIGlzIG9ubHkgcGFydGlh bGx5IHVuZGVmaW5lZC4gICovDQogDQogYm9vbA0KLXNzYV91bmRlZmluZWRf dmFsdWVfcCAodHJlZSB0KQ0KK3NzYV91bmRlZmluZWRfdmFsdWVfcCAodHJl ZSB0LCBib29sIHBhcnRpYWwpDQogew0KICAgZ2ltcGxlIGRlZl9zdG10Ow0K ICAgdHJlZSB2YXIgPSBTU0FfTkFNRV9WQVIgKHQpOw0KIA0KICAgaWYgKCF2 YXIpDQogICAgIDsNCiAgIC8qIFBhcmFtZXRlcnMgZ2V0IHRoZWlyIGluaXRp YWwgdmFsdWUgZnJvbSB0aGUgZnVuY3Rpb24gZW50cnkuICAqLw0KICAgZWxz ZSBpZiAoVFJFRV9DT0RFICh2YXIpID09IFBBUk1fREVDTCkNCiAgICAgcmV0 dXJuIGZhbHNlOw0KICAgLyogV2hlbiByZXR1cm5pbmcgYnkgcmVmZXJlbmNl IHRoZSByZXR1cm4gYWRkcmVzcyBpcyBhY3R1YWxseSBhIGhpZGRlbg0KQEAg LTEyMDUsMjEgKzEyMDYsMjEgQEAgc3NhX3VuZGVmaW5lZF92YWx1ZV9wICh0 cmVlIHQpDQogICAvKiBIYXJkIHJlZ2lzdGVyIHZhcmlhYmxlcyBnZXQgdGhl aXIgaW5pdGlhbCB2YWx1ZSBmcm9tIHRoZSBldGhlci4gICovDQogICBlbHNl IGlmIChUUkVFX0NPREUgKHZhcikgPT0gVkFSX0RFQ0wgJiYgREVDTF9IQVJE X1JFR0lTVEVSICh2YXIpKQ0KICAgICByZXR1cm4gZmFsc2U7DQogDQogICAv KiBUaGUgdmFsdWUgaXMgdW5kZWZpbmVkIGlmZiBpdHMgZGVmaW5pdGlvbiBz dGF0ZW1lbnQgaXMgZW1wdHkuICAqLw0KICAgZGVmX3N0bXQgPSBTU0FfTkFN RV9ERUZfU1RNVCAodCk7DQogICBpZiAoZ2ltcGxlX25vcF9wIChkZWZfc3Rt dCkpDQogICAgIHJldHVybiB0cnVlOw0KIA0KICAgLyogQ2hlY2sgaWYgdGhl IGNvbXBsZXggd2FzIG5vdCBvbmx5IHBhcnRpYWxseSBkZWZpbmVkLiAgKi8N Ci0gIGlmIChpc19naW1wbGVfYXNzaWduIChkZWZfc3RtdCkNCisgIGlmIChw YXJ0aWFsICYmIGlzX2dpbXBsZV9hc3NpZ24gKGRlZl9zdG10KQ0KICAgICAg ICYmIGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKGRlZl9zdG10KSA9PSBDT01Q TEVYX0VYUFIpDQogICAgIHsNCiAgICAgICB0cmVlIHJoczEsIHJoczI7DQog DQogICAgICAgcmhzMSA9IGdpbXBsZV9hc3NpZ25fcmhzMSAoZGVmX3N0bXQp Ow0KICAgICAgIHJoczIgPSBnaW1wbGVfYXNzaWduX3JoczIgKGRlZl9zdG10 KTsNCiAgICAgICByZXR1cm4gKFRSRUVfQ09ERSAocmhzMSkgPT0gU1NBX05B TUUgJiYgc3NhX3VuZGVmaW5lZF92YWx1ZV9wIChyaHMxKSkNCiAJICAgICB8 fCAoVFJFRV9DT0RFIChyaHMyKSA9PSBTU0FfTkFNRSAmJiBzc2FfdW5kZWZp bmVkX3ZhbHVlX3AgKHJoczIpKTsNCiAgICAgfQ0KICAgcmV0dXJuIGZhbHNl Ow0KQEAgLTE1NTEsMzIgKzE1NTIsMjAgQEAgZXhlY3V0ZV91cGRhdGVfYWRk cmVzc2VzX3Rha2VuICh2b2lkKQ0KIAkJcmhzID0gZ2ltcGxlX2Fzc2lnbl9y aHMxIChzdG10KTsNCiAJCWlmIChnaW1wbGVfYXNzaWduX2xocyAoc3RtdCkg IT0gbGhzDQogCQkgICAgJiYgIXVzZWxlc3NfdHlwZV9jb252ZXJzaW9uX3Ag KFRSRUVfVFlQRSAobGhzKSwNCiAJCQkJCQkgICBUUkVFX1RZUEUgKHJocykp KQ0KIAkJICByaHMgPSBmb2xkX2J1aWxkMSAoVklFV19DT05WRVJUX0VYUFIs DQogCQkJCSAgICAgVFJFRV9UWVBFIChsaHMpLCByaHMpOw0KIA0KIAkJaWYg KGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KSAhPSBsaHMpDQogCQkgIGdpbXBs ZV9hc3NpZ25fc2V0X2xocyAoc3RtdCwgbGhzKTsNCiANCi0JCS8qIEZvciB2 YXIgPXt2fSB7Q0xPQkJFUn07IHdoZXJlIHZhciBsb3N0DQotCQkgICBUUkVF X0FERFJFU1NBQkxFIGp1c3QgcmVtb3ZlIHRoZSBzdG10LiAgKi8NCi0JCWlm IChERUNMX1AgKGxocykNCi0JCSAgICAmJiBUUkVFX0NMT0JCRVJfUCAocmhz KQ0KLQkJICAgICYmIGJpdG1hcF9iaXRfcCAoc3VpdGFibGVfZm9yX3JlbmFt aW5nLCBERUNMX1VJRCAobGhzKSkpDQotCQkgIHsNCi0JCSAgICB1bmxpbmtf c3RtdF92ZGVmIChzdG10KTsNCi0gICAgICAJCSAgICBnc2lfcmVtb3ZlICgm Z3NpLCB0cnVlKTsNCi0JCSAgICByZWxlYXNlX2RlZnMgKHN0bXQpOw0KLQkJ ICAgIGNvbnRpbnVlOw0KLQkJICB9DQotDQogCQlpZiAoZ2ltcGxlX2Fzc2ln bl9yaHMxIChzdG10KSAhPSByaHMpDQogCQkgIHsNCiAJCSAgICBnaW1wbGVf c3RtdF9pdGVyYXRvciBnc2kgPSBnc2lfZm9yX3N0bXQgKHN0bXQpOw0KIAkJ ICAgIGdpbXBsZV9hc3NpZ25fc2V0X3Joc19mcm9tX3RyZWUgKCZnc2ksIHJo cyk7DQogCQkgIH0NCiAJICAgICAgfQ0KIA0KIAkgICAgZWxzZSBpZiAoZ2lt cGxlX2NvZGUgKHN0bXQpID09IEdJTVBMRV9DQUxMKQ0KIAkgICAgICB7DQog CQl1bnNpZ25lZCBpOw0KSW5kZXg6IHRyZWUtc3NhLmgNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSB0cmVlLXNzYS5oCShyZXZpc2lvbiAyMTYzODQp DQorKysgdHJlZS1zc2EuaAkod29ya2luZyBjb3B5KQ0KQEAgLTQ0LDIxICs0 NCwyMSBAQCBleHRlcm4gdHJlZSB0YXJnZXRfZm9yX2RlYnVnX2JpbmQgKHRy ZWUpDQogZXh0ZXJuIHZvaWQgaW5zZXJ0X2RlYnVnX3RlbXBfZm9yX3Zhcl9k ZWYgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICosIHRyZWUpOw0KIGV4dGVybiB2 b2lkIGluc2VydF9kZWJ1Z190ZW1wc19mb3JfZGVmcyAoZ2ltcGxlX3N0bXRf aXRlcmF0b3IgKik7DQogZXh0ZXJuIHZvaWQgcmVzZXRfZGVidWdfdXNlcyAo Z2ltcGxlKTsNCiBleHRlcm4gdm9pZCByZWxlYXNlX2RlZnNfYml0c2V0IChi aXRtYXAgdG9yZW1vdmUpOw0KIGV4dGVybiB2b2lkIHZlcmlmeV9zc2EgKGJv b2wsIGJvb2wpOw0KIGV4dGVybiB2b2lkIGluaXRfdHJlZV9zc2EgKHN0cnVj dCBmdW5jdGlvbiAqKTsNCiBleHRlcm4gdm9pZCBkZWxldGVfdHJlZV9zc2Eg KHZvaWQpOw0KIGV4dGVybiBib29sIHRyZWVfc3NhX3VzZWxlc3NfdHlwZV9j b252ZXJzaW9uICh0cmVlKTsNCiBleHRlcm4gdHJlZSB0cmVlX3NzYV9zdHJp cF91c2VsZXNzX3R5cGVfY29udmVyc2lvbnMgKHRyZWUpOw0KIA0KLWV4dGVy biBib29sIHNzYV91bmRlZmluZWRfdmFsdWVfcCAodHJlZSk7DQorZXh0ZXJu IGJvb2wgc3NhX3VuZGVmaW5lZF92YWx1ZV9wICh0cmVlLCBib29sID0gdHJ1 ZSk7DQogZXh0ZXJuIHZvaWQgZXhlY3V0ZV91cGRhdGVfYWRkcmVzc2VzX3Rh a2VuICh2b2lkKTsNCiANCiAvKiBHaXZlbiBhbiBlZGdlX3Zhcl9tYXAgViwg cmV0dXJuIHRoZSBQSEkgYXJnIGRlZmluaXRpb24uICAqLw0KIA0KIHN0YXRp YyBpbmxpbmUgdHJlZQ0KIHJlZGlyZWN0X2VkZ2VfdmFyX21hcF9kZWYgKGVk Z2VfdmFyX21hcCAqdikNCiB7DQogICByZXR1cm4gdi0+ZGVmOw0KIH0NCiAN Cg== --8323329-1341249952-1413578479=:30896--