From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22011 invoked by alias); 13 Dec 2018 14:52:48 -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 21916 invoked by uid 89); 13 Dec 2018 14:52:47 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=proceeds, sk:delete_, *stmt, cancelled X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 13 Dec 2018 14:52:41 +0000 Received: from svr-orw-mbx-02.mgc.mentorg.com ([147.34.90.202]) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1gXSLv-0004YY-R8 from ChungLin_Tang@mentor.com ; Thu, 13 Dec 2018 06:52:39 -0800 Received: from [0.0.0.0] (147.34.91.1) by svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 13 Dec 2018 06:52:36 -0800 Reply-To: Subject: Re: [PATCH, OpenACC, 4/8] Multi-dimensional dynamic array support for OpenACC data clauses, omp-low: dynamic array descriptor creation From: Chung-Lin Tang To: , Jakub Jelinek , Thomas Schwinge References: <4c8edea9-4685-2c19-d742-9f1a63e89f91@mentor.com> Message-ID: Date: Thu, 13 Dec 2018 14:52:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <4c8edea9-4685-2c19-d742-9f1a63e89f91@mentor.com> Content-Type: multipart/mixed; boundary="------------4DC60D30D3B1596E0C037680" X-SW-Source: 2018-12/txt/msg00934.txt.bz2 --------------4DC60D30D3B1596E0C037680 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1375 On 2018/10/16 8:56 PM, Chung-Lin Tang wrote: > The next two patches are the bulk of the compiler patch in the middle-ends. > > The first patch here, implements the creation of dynamic array descriptors to > pass to the runtime, a different way than completely using map-clauses. > > Because we support arbitrary number of dimensions, adding more map kind cases > may convolute a lot of the compiler/runtime logic handling the long map sequences. > > This implementation uses a descriptor struct created on stack, and passes the > pointer to descriptor through to the libgomp runtime, using the exact same receiver field > for the dynamic array. > > The libgomp runtime then does its stuff to set things up, and properly adjusts the device-side > receiver field pointer to the on-device created dynamic array structures. I.e. the same receiver > field serves as descriptor address field on the compiler side, and as the actual data address > once we get to device code (a pretty important point needed to clarify). After the prior revising of libgomp/target.c:gomp_map_vars() to test the first map for necessity of this dynamic array processing, this patch correspondingly updates scan_omp_target to reorder related map clauses to the start of the clause chain for OpenACC constructs. Again, besides the whole revised patch, v1-v2 diff also included. Thanks, Chung-Lin --------------4DC60D30D3B1596E0C037680 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="openacc-da-04.omp-low.descr_create.v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="openacc-da-04.omp-low.descr_create.v2.patch" Content-length: 16462 SW5kZXg6IGdjYy9vbXAtbG93LmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL29tcC1sb3cuYwkocmV2aXNpb24gMjY3MDUwKQorKysgZ2NjL29t cC1sb3cuYwkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBhbG9u ZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQogI2luY2x1ZGUgImhzYS1jb21tb24uaCIKICNpbmNsdWRlICJzdHJpbmdw b29sLmgiCiAjaW5jbHVkZSAiYXR0cmlicy5oIgorI2luY2x1ZGUgInRyZWUt aGFzaC10cmFpdHMuaCIKIAogLyogTG93ZXJpbmcgb2YgT01QIHBhcmFsbGVs IGFuZCB3b3Jrc2hhcmUgY29uc3RydWN0cyBwcm9jZWVkcyBpbiB0d28KICAg IHBoYXNlcy4gIFRoZSBmaXJzdCBwaGFzZSBzY2FucyB0aGUgZnVuY3Rpb24g bG9va2luZyBmb3IgT01QIHN0YXRlbWVudHMKQEAgLTEzMyw2ICsxMzQsOSBA QCBzdHJ1Y3Qgb21wX2NvbnRleHQKIAogICAvKiBUcnVlIGlmIHRoaXMgY29u c3RydWN0IGNhbiBiZSBjYW5jZWxsZWQuICAqLwogICBib29sIGNhbmNlbGxh YmxlOworCisgIC8qIEhhc2ggbWFwIG9mIGR5bmFtaWMgYXJyYXlzIGluIHRo aXMgY29udGV4dC4gICovCisgIGhhc2hfbWFwPHRyZWVfb3BlcmFuZF9oYXNo LCB0cmVlPiAqZHluYW1pY19hcnJheXM7CiB9OwogCiBzdGF0aWMgc3BsYXlf dHJlZSBhbGxfY29udGV4dHM7CkBAIC04MzksNiArODQzLDEzNiBAQCBvbXBf Y29weV9kZWNsICh0cmVlIHZhciwgY29weV9ib2R5X2RhdGEgKmNiKQogICBy ZXR1cm4gZXJyb3JfbWFya19ub2RlOwogfQogCisvKiBIZWxwZXIgZnVuY3Rp b24gZm9yIGNyZWF0ZV9keW5hbWljX2FycmF5X2Rlc2NyX3R5cGUoKSwgdG8g YXBwZW5kIGEgbmV3IGZpZWxkCisgICB0byBhIHJlY29yZCB0eXBlLiAgKi8K Kworc3RhdGljIHZvaWQKK2FwcGVuZF9maWVsZF90b19yZWNvcmRfdHlwZSAo dHJlZSByZWNvcmRfdHlwZSwgdHJlZSBmbGRfaWRlbnQsIHRyZWUgZmxkX3R5 cGUpCit7CisgIHRyZWUgKnAsIGZsZCA9IGJ1aWxkX2RlY2wgKFVOS05PV05f TE9DQVRJT04sIEZJRUxEX0RFQ0wsIGZsZF9pZGVudCwgZmxkX3R5cGUpOwor ICBERUNMX0NPTlRFWFQgKGZsZCkgPSByZWNvcmRfdHlwZTsKKworICBmb3Ig KHAgPSAmVFlQRV9GSUVMRFMgKHJlY29yZF90eXBlKTsgKnA7IHAgPSAmREVD TF9DSEFJTiAoKnApKQorICAgIDsKKyAgKnAgPSBmbGQ7Cit9CisKKy8qIENy ZWF0ZSB0eXBlIGZvciBkeW5hbWljIGFycmF5IGRlc2NyaXB0b3IuIFJldHVy bnMgY3JlYXRlZCB0eXBlLCBhbmQKKyAgIHJldHVybnMgdGhlIG51bWJlciBv ZiBkaW1lbnNpb25zIGluICpESU1fTlVNLiAgKi8KKworc3RhdGljIHRyZWUK K2NyZWF0ZV9keW5hbWljX2FycmF5X2Rlc2NyX3R5cGUgKHRyZWUgZGVjbCwg dHJlZSBkaW1zLCBpbnQgKmRpbV9udW0pCit7CisgIGludCBuID0gMDsKKyAg dHJlZSBkYV9kZXNjcl90eXBlLCBuYW1lLCB4OworICBnY2NfYXNzZXJ0IChU UkVFX0NPREUgKGRpbXMpID09IFRSRUVfTElTVCk7CisKKyAgZGFfZGVzY3Jf dHlwZSA9IGxhbmdfaG9va3MudHlwZXMubWFrZV90eXBlIChSRUNPUkRfVFlQ RSk7CisgIG5hbWUgPSBjcmVhdGVfdG1wX3Zhcl9uYW1lICgiLm9tcF9keW5h bWljX2FycmF5X2Rlc2NyX3R5cGUiKTsKKyAgbmFtZSA9IGJ1aWxkX2RlY2wg KFVOS05PV05fTE9DQVRJT04sIFRZUEVfREVDTCwgbmFtZSwgZGFfZGVzY3Jf dHlwZSk7CisgIERFQ0xfQVJUSUZJQ0lBTCAobmFtZSkgPSAxOworICBERUNM X05BTUVMRVNTIChuYW1lKSA9IDE7CisgIFRZUEVfTkFNRSAoZGFfZGVzY3Jf dHlwZSkgPSBuYW1lOworICBUWVBFX0FSVElGSUNJQUwgKGRhX2Rlc2NyX3R5 cGUpID0gMTsKKworICAvKiBNYWluIHN0YXJ0aW5nIHBvaW50ZXIvYXJyYXku ICAqLworICB0cmVlIG1haW5fdmFyX3R5cGUgPSBUUkVFX1RZUEUgKGRlY2wp OworICBpZiAoVFJFRV9DT0RFIChtYWluX3Zhcl90eXBlKSA9PSBSRUZFUkVO Q0VfVFlQRSkKKyAgICBtYWluX3Zhcl90eXBlID0gVFJFRV9UWVBFIChtYWlu X3Zhcl90eXBlKTsKKyAgYXBwZW5kX2ZpZWxkX3RvX3JlY29yZF90eXBlIChk YV9kZXNjcl90eXBlLCBERUNMX05BTUUgKGRlY2wpLAorCQkJICAgICAgIChU UkVFX0NPREUgKFRSRUVfVFlQRSAoZGVjbCkpID09IFBPSU5URVJfVFlQRQor CQkJCT8gbWFpbl92YXJfdHlwZQorCQkJCTogYnVpbGRfcG9pbnRlcl90eXBl IChtYWluX3Zhcl90eXBlKSkpOworICAvKiBOdW1iZXIgb2YgZGltZW5zaW9u cy4gICovCisgIGFwcGVuZF9maWVsZF90b19yZWNvcmRfdHlwZSAoZGFfZGVz Y3JfdHlwZSwgZ2V0X2lkZW50aWZpZXIgKCIkZGltX251bSIpLAorCQkJICAg ICAgIHNpemV0eXBlKTsKKworICBmb3IgKHggPSBkaW1zOyB4OyB4ID0gVFJF RV9DSEFJTiAoeCksIG4rKykKKyAgICB7CisgICAgICBjaGFyICpmbGRuYW1l OworICAgICAgLyogT25lIGZvciB0aGUgc3RhcnQgaW5kZXguICAqLworICAg ICAgQVNNX0ZPUk1BVF9QUklWQVRFX05BTUUgKGZsZG5hbWUsICIkZGltX2Jh c2UiLCBuKTsKKyAgICAgIGFwcGVuZF9maWVsZF90b19yZWNvcmRfdHlwZSAo ZGFfZGVzY3JfdHlwZSwgZ2V0X2lkZW50aWZpZXIgKGZsZG5hbWUpLAorCQkJ CSAgIHNpemV0eXBlKTsKKyAgICAgIC8qIE9uZSBmb3IgdGhlIGxlbmd0aC4g ICovCisgICAgICBBU01fRk9STUFUX1BSSVZBVEVfTkFNRSAoZmxkbmFtZSwg IiRkaW1fbGVuZ3RoIiwgbik7CisgICAgICBhcHBlbmRfZmllbGRfdG9fcmVj b3JkX3R5cGUgKGRhX2Rlc2NyX3R5cGUsIGdldF9pZGVudGlmaWVyIChmbGRu YW1lKSwKKwkJCQkgICBzaXpldHlwZSk7CisgICAgICAvKiBPbmUgZm9yIHRo ZSBlbGVtZW50IHNpemUuICAqLworICAgICAgQVNNX0ZPUk1BVF9QUklWQVRF X05BTUUgKGZsZG5hbWUsICIkZGltX2VsZW1fc2l6ZSIsIG4pOworICAgICAg YXBwZW5kX2ZpZWxkX3RvX3JlY29yZF90eXBlIChkYV9kZXNjcl90eXBlLCBn ZXRfaWRlbnRpZmllciAoZmxkbmFtZSksCisJCQkJICAgc2l6ZXR5cGUpOwor ICAgICAgLyogT25lIGZvciBpc19hcnJheSBmbGFnLiAgKi8KKyAgICAgIEFT TV9GT1JNQVRfUFJJVkFURV9OQU1FIChmbGRuYW1lLCAiJGRpbV9pc19hcnJh eSIsIG4pOworICAgICAgYXBwZW5kX2ZpZWxkX3RvX3JlY29yZF90eXBlIChk YV9kZXNjcl90eXBlLCBnZXRfaWRlbnRpZmllciAoZmxkbmFtZSksCisJCQkJ ICAgc2l6ZXR5cGUpOworICAgIH0KKworICBsYXlvdXRfdHlwZSAoZGFfZGVz Y3JfdHlwZSk7CisgICpkaW1fbnVtID0gbjsKKyAgcmV0dXJuIGRhX2Rlc2Ny X3R5cGU7Cit9CisKKy8qIEdlbmVyYXRlIGNvZGUgc2VxdWVuY2UgZm9yIGlu aXRpYWxpemluZyBkeW5hbWljIGFycmF5IGRlc2NyaXB0b3IuICAqLworCitz dGF0aWMgdm9pZAorY3JlYXRlX2R5bmFtaWNfYXJyYXlfZGVzY3JfaW5pdF9j b2RlICh0cmVlIGRhX2Rlc2NyLCB0cmVlIGRhX3ZhciwKKwkJCQkgICAgICB0 cmVlIGRpbWVuc2lvbnMsIGludCBkYV9kaW1fbnVtLAorCQkJCSAgICAgIGdp bXBsZV9zZXEgKmlsaXN0KQoreworICB0cmVlIGZsZCwgZmxkcmVmOworICB0 cmVlIGRhX2Rlc2NyX3R5cGUgPSBUUkVFX1RZUEUgKGRhX2Rlc2NyKTsKKyAg dHJlZSBkaW1fdHlwZSA9IFRSRUVfVFlQRSAoZGFfdmFyKTsKKworICBmbGQg PSBUWVBFX0ZJRUxEUyAoZGFfZGVzY3JfdHlwZSk7CisgIGZsZHJlZiA9IG9t cF9idWlsZF9jb21wb25lbnRfcmVmIChkYV9kZXNjciwgZmxkKTsKKyAgZ2lt cGxpZnlfYXNzaWduIChmbGRyZWYsIChUUkVFX0NPREUgKGRpbV90eXBlKSA9 PSBBUlJBWV9UWVBFCisJCQkgICAgPyBidWlsZF9mb2xkX2FkZHJfZXhwciAo ZGFfdmFyKSA6IGRhX3ZhciksIGlsaXN0KTsKKworICBpZiAoVFJFRV9DT0RF IChkaW1fdHlwZSkgPT0gUkVGRVJFTkNFX1RZUEUpCisgICAgZGltX3R5cGUg PSBUUkVFX1RZUEUgKGRpbV90eXBlKTsKKworICBmbGQgPSBUUkVFX0NIQUlO IChmbGQpOworICBmbGRyZWYgPSBvbXBfYnVpbGRfY29tcG9uZW50X3JlZiAo ZGFfZGVzY3IsIGZsZCk7CisgIGdpbXBsaWZ5X2Fzc2lnbiAoZmxkcmVmLCBi dWlsZF9pbnRfY3N0IChzaXpldHlwZSwgZGFfZGltX251bSksIGlsaXN0KTsK KworICB3aGlsZSAoZGltZW5zaW9ucykKKyAgICB7CisgICAgICB0cmVlIGRp bV9iYXNlID0gZm9sZF9jb252ZXJ0IChzaXpldHlwZSwgVFJFRV9QVVJQT1NF IChkaW1lbnNpb25zKSk7CisgICAgICB0cmVlIGRpbV9sZW5ndGggPSBmb2xk X2NvbnZlcnQgKHNpemV0eXBlLCBUUkVFX1ZBTFVFIChkaW1lbnNpb25zKSk7 CisgICAgICB0cmVlIGRpbV9lbGVtX3NpemUgPSBUWVBFX1NJWkVfVU5JVCAo VFJFRV9UWVBFIChkaW1fdHlwZSkpOworICAgICAgdHJlZSBkaW1faXNfYXJy YXkgPSAoVFJFRV9DT0RFIChkaW1fdHlwZSkgPT0gQVJSQVlfVFlQRQorCQkJ ICAgPyBpbnRlZ2VyX29uZV9ub2RlIDogaW50ZWdlcl96ZXJvX25vZGUpOwor ICAgICAgLyogU2V0IGJhc2UuICAqLworICAgICAgZmxkID0gVFJFRV9DSEFJ TiAoZmxkKTsKKyAgICAgIGZsZHJlZiA9IG9tcF9idWlsZF9jb21wb25lbnRf cmVmIChkYV9kZXNjciwgZmxkKTsKKyAgICAgIGRpbV9iYXNlID0gZm9sZF9i dWlsZDIgKE1VTFRfRVhQUiwgc2l6ZXR5cGUsIGRpbV9iYXNlLCBkaW1fZWxl bV9zaXplKTsKKyAgICAgIGdpbXBsaWZ5X2Fzc2lnbiAoZmxkcmVmLCBkaW1f YmFzZSwgaWxpc3QpOworCisgICAgICAvKiBTZXQgbGVuZ3RoLiAgKi8KKyAg ICAgIGZsZCA9IFRSRUVfQ0hBSU4gKGZsZCk7CisgICAgICBmbGRyZWYgPSBv bXBfYnVpbGRfY29tcG9uZW50X3JlZiAoZGFfZGVzY3IsIGZsZCk7CisgICAg ICBkaW1fbGVuZ3RoID0gZm9sZF9idWlsZDIgKE1VTFRfRVhQUiwgc2l6ZXR5 cGUsIGRpbV9sZW5ndGgsIGRpbV9lbGVtX3NpemUpOworICAgICAgZ2ltcGxp ZnlfYXNzaWduIChmbGRyZWYsIGRpbV9sZW5ndGgsIGlsaXN0KTsKKworICAg ICAgLyogU2V0IGVsZW1fc2l6ZS4gICovCisgICAgICBmbGQgPSBUUkVFX0NI QUlOIChmbGQpOworICAgICAgZmxkcmVmID0gb21wX2J1aWxkX2NvbXBvbmVu dF9yZWYgKGRhX2Rlc2NyLCBmbGQpOworICAgICAgZGltX2VsZW1fc2l6ZSA9 IGZvbGRfY29udmVydCAoc2l6ZXR5cGUsIGRpbV9lbGVtX3NpemUpOworICAg ICAgZ2ltcGxpZnlfYXNzaWduIChmbGRyZWYsIGRpbV9lbGVtX3NpemUsIGls aXN0KTsKKworICAgICAgLyogU2V0IGlzX2FycmF5IGZsYWcuICAqLworICAg ICAgZmxkID0gVFJFRV9DSEFJTiAoZmxkKTsKKyAgICAgIGZsZHJlZiA9IG9t cF9idWlsZF9jb21wb25lbnRfcmVmIChkYV9kZXNjciwgZmxkKTsKKyAgICAg IGRpbV9pc19hcnJheSA9IGZvbGRfY29udmVydCAoc2l6ZXR5cGUsIGRpbV9p c19hcnJheSk7CisgICAgICBnaW1wbGlmeV9hc3NpZ24gKGZsZHJlZiwgZGlt X2lzX2FycmF5LCBpbGlzdCk7CisKKyAgICAgIGRpbWVuc2lvbnMgPSBUUkVF X0NIQUlOIChkaW1lbnNpb25zKTsKKyAgICAgIGRpbV90eXBlID0gVFJFRV9U WVBFIChkaW1fdHlwZSk7CisgICAgfQorICBnY2NfYXNzZXJ0IChUUkVFX0NI QUlOIChmbGQpID09IE5VTExfVFJFRSk7Cit9CisKIC8qIENyZWF0ZSBhIG5l dyBjb250ZXh0LCB3aXRoIE9VVEVSX0NUWCBiZWluZyB0aGUgc3Vycm91bmRp bmcgY29udGV4dC4gICovCiAKIHN0YXRpYyBvbXBfY29udGV4dCAqCkBAIC04 NzMsNiArMTAwNyw4IEBAIG5ld19vbXBfY29udGV4dCAoZ2ltcGxlICpzdG10 LCBvbXBfY29udGV4dCAqb3V0ZXJfCiAKICAgY3R4LT5jYi5kZWNsX21hcCA9 IG5ldyBoYXNoX21hcDx0cmVlLCB0cmVlPjsKIAorICBjdHgtPmR5bmFtaWNf YXJyYXlzID0gbmV3IGhhc2hfbWFwPHRyZWVfb3BlcmFuZF9oYXNoLCB0cmVl PjsKKwogICByZXR1cm4gY3R4OwogfQogCkBAIC05NTMsNiArMTA4OSw4IEBA IGRlbGV0ZV9vbXBfY29udGV4dCAoc3BsYXlfdHJlZV92YWx1ZSB2YWx1ZSkK ICAgICAgIGRlbGV0ZSBjdHgtPnRhc2tfcmVkdWN0aW9uX21hcDsKICAgICB9 CiAKKyAgZGVsZXRlIGN0eC0+ZHluYW1pY19hcnJheXM7CisKICAgWERFTEVU RSAoY3R4KTsKIH0KIApAQCAtMTMwMCw2ICsxNDM4LDQyIEBAIHNjYW5fc2hh cmluZ19jbGF1c2VzICh0cmVlIGNsYXVzZXMsIG9tcF9jb250ZXh0ICpjCiAJ ICAgICAgaW5zdGFsbF92YXJfbG9jYWwgKGRlY2wsIGN0eCk7CiAJICAgICAg YnJlYWs7CiAJICAgIH0KKworCSAgaWYgKE9NUF9DTEFVU0VfQ09ERSAoYykg PT0gT01QX0NMQVVTRV9NQVAKKwkgICAgICAmJiBHT01QX01BUF9EWU5BTUlD X0FSUkFZX1AgKE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpKSkKKwkgICAgewor CSAgICAgIHRyZWUgZGFfZGVjbCA9IE9NUF9DTEFVU0VfREVDTCAoYyk7CisJ ICAgICAgdHJlZSBkYV9kaW1lbnNpb25zID0gT01QX0NMQVVTRV9TSVpFIChj KTsKKwkgICAgICB0cmVlIGRhX3R5cGUgPSBUUkVFX1RZUEUgKGRhX2RlY2wp OworCSAgICAgIGJvb2wgYnlfcmVmID0gKFRSRUVfQ09ERSAoZGFfdHlwZSkg PT0gQVJSQVlfVFlQRQorCQkJICAgICA/IHRydWUgOiBmYWxzZSk7CisKKwkg ICAgICAvKiBDaGVja2luZyBjb2RlIHRvIGVuc3VyZSB3ZSBvbmx5IGhhdmUg YXJyYXlzIGF0IHRvcCBkaW1lbnNpb24uCisJCSBUaGlzIGxpbWl0YXRpb24g bWlnaHQgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUuICAqLworCSAgICAgIGlm IChUUkVFX0NPREUgKGRhX3R5cGUpID09IFJFRkVSRU5DRV9UWVBFKQorCQlk YV90eXBlID0gVFJFRV9UWVBFIChkYV90eXBlKTsKKwkgICAgICB0cmVlIHQg PSBkYV90eXBlLCBwcmV2X3QgPSBOVUxMX1RSRUU7CisJICAgICAgd2hpbGUg KHQpCisJCXsKKwkJICBpZiAoVFJFRV9DT0RFICh0KSA9PSBBUlJBWV9UWVBF ICYmIHByZXZfdCkKKwkJICAgIHsKKwkJICAgICAgZXJyb3JfYXQgKGdpbXBs ZV9sb2NhdGlvbiAoY3R4LT5zdG10KSwgImFycmF5IHR5cGVzIGFyZSIKKwkJ CQkiIG9ubHkgYWxsb3dlZCBhdCBvdXRlcm1vc3QgZGltZW5zaW9uIG9mIgor CQkJCSIgZHluYW1pYyBhcnJheSIpOworCQkgICAgICBicmVhazsKKwkJICAg IH0KKwkJICBwcmV2X3QgPSB0OworCQkgIHQgPSBUUkVFX1RZUEUgKHQpOwor CQl9CisKKwkgICAgICBpbnN0YWxsX3Zhcl9maWVsZCAoZGFfZGVjbCwgYnlf cmVmLCAzLCBjdHgpOworCSAgICAgIHRyZWUgbmV3X3ZhciA9IGluc3RhbGxf dmFyX2xvY2FsIChkYV9kZWNsLCBjdHgpOworCisJICAgICAgYm9vbCBleGlz dGVkID0gY3R4LT5keW5hbWljX2FycmF5cy0+cHV0IChuZXdfdmFyLCBkYV9k aW1lbnNpb25zKTsKKwkgICAgICBnY2NfYXNzZXJ0ICghZXhpc3RlZCk7CisJ ICAgICAgYnJlYWs7CisJICAgIH0KKwogCSAgaWYgKERFQ0xfUCAoZGVjbCkp CiAJICAgIHsKIAkgICAgICBpZiAoREVDTF9TSVpFIChkZWNsKQpAQCAtMjQy Niw2ICsyNjAwLDUwIEBAIHNjYW5fb21wX3NpbmdsZSAoZ29tcF9zaW5nbGUg KnN0bXQsIG9tcF9jb250ZXh0ICpvCiAgICAgbGF5b3V0X3R5cGUgKGN0eC0+ cmVjb3JkX3R5cGUpOwogfQogCisvKiBSZW9yZGVyIGNsYXVzZXMgc28gdGhh dCBkeW5hbWljIGFycmF5IG1hcCBjbGF1c2VzIGFyZSBwbGFjZWQgYXQgdGhl IHZlcnkKKyAgIGZyb250IG9mIHRoZSBjaGFpbi4gICovCisKK3N0YXRpYyB2 b2lkCityZW9yZGVyX2R5bmFtaWNfYXJyYXlfY2xhdXNlcyAodHJlZSAqY2xh dXNlc19wdHIpCit7CisgIHRyZWUgYywgY2xhdXNlcyA9ICpjbGF1c2VzX3B0 cjsKKyAgdHJlZSBwcmV2X2NsYXVzZSA9IE5VTExfVFJFRSwgbmV4dF9jbGF1 c2U7CisgIHRyZWUgZGFfY2xhdXNlcyA9IE5VTExfVFJFRSwgZGFfY2xhdXNl c190YWlsID0gTlVMTF9UUkVFOworCisgIGZvciAoYyA9IGNsYXVzZXM7IGM7 IGMgPSBuZXh0X2NsYXVzZSkKKyAgICB7CisgICAgICBuZXh0X2NsYXVzZSA9 IE9NUF9DTEFVU0VfQ0hBSU4gKGMpOworCisgICAgICBpZiAoT01QX0NMQVVT RV9DT0RFIChjKSA9PSBPTVBfQ0xBVVNFX01BUAorCSAgJiYgR09NUF9NQVBf RFlOQU1JQ19BUlJBWV9QIChPTVBfQ0xBVVNFX01BUF9LSU5EIChjKSkpCisJ eworCSAgLyogVW5jaGFpbiBjIGZyb20gY2xhdXNlcy4gICovCisJICBpZiAo YyA9PSBjbGF1c2VzKQorCSAgICBjbGF1c2VzID0gbmV4dF9jbGF1c2U7CisK KwkgIC8qIExpbmsgb24gdG8gZGFfY2xhdXNlcy4gICovCisJICBpZiAoZGFf Y2xhdXNlc190YWlsKQorCSAgICBPTVBfQ0xBVVNFX0NIQUlOIChkYV9jbGF1 c2VzX3RhaWwpID0gYzsKKwkgIGVsc2UKKwkgICAgZGFfY2xhdXNlcyA9IGM7 CisJICBkYV9jbGF1c2VzX3RhaWwgPSBjOworCisJICBpZiAocHJldl9jbGF1 c2UpCisJICAgIE9NUF9DTEFVU0VfQ0hBSU4gKHByZXZfY2xhdXNlKSA9IG5l eHRfY2xhdXNlOworCSAgY29udGludWU7CisJfQorCisgICAgICBwcmV2X2Ns YXVzZSA9IGM7CisgICAgfSAgCisKKyAgLyogUGxhY2UgZHluYW1pYyBhcnJh eSBjbGF1c2VzIGF0IHRoZSBzdGFydCBvZiB0aGUgY2xhdXNlIGxpc3QuICAq LworICBpZiAoZGFfY2xhdXNlcykKKyAgICB7CisgICAgICBPTVBfQ0xBVVNF X0NIQUlOIChkYV9jbGF1c2VzX3RhaWwpID0gY2xhdXNlczsKKyAgICAgICpj bGF1c2VzX3B0ciA9IGRhX2NsYXVzZXM7CisgICAgfQorfQorCiAvKiBTY2Fu IGEgR0lNUExFX09NUF9UQVJHRVQuICAqLwogCiBzdGF0aWMgdm9pZApAQCAt MjQzNCw3ICsyNjUyLDYgQEAgc2Nhbl9vbXBfdGFyZ2V0IChnb21wX3Rhcmdl dCAqc3RtdCwgb21wX2NvbnRleHQgKm8KICAgb21wX2NvbnRleHQgKmN0eDsK ICAgdHJlZSBuYW1lOwogICBib29sIG9mZmxvYWRlZCA9IGlzX2dpbXBsZV9v bXBfb2ZmbG9hZGVkIChzdG10KTsKLSAgdHJlZSBjbGF1c2VzID0gZ2ltcGxl X29tcF90YXJnZXRfY2xhdXNlcyAoc3RtdCk7CiAKICAgY3R4ID0gbmV3X29t cF9jb250ZXh0IChzdG10LCBvdXRlcl9jdHgpOwogICBjdHgtPmZpZWxkX21h cCA9IHNwbGF5X3RyZWVfbmV3IChzcGxheV90cmVlX2NvbXBhcmVfcG9pbnRl cnMsIDAsIDApOwpAQCAtMjQ1Myw2ICsyNjcwLDE0IEBAIHNjYW5fb21wX3Rh cmdldCAoZ29tcF90YXJnZXQgKnN0bXQsIG9tcF9jb250ZXh0ICpvCiAgICAg ICBnaW1wbGVfb21wX3RhcmdldF9zZXRfY2hpbGRfZm4gKHN0bXQsIGN0eC0+ Y2IuZHN0X2ZuKTsKICAgICB9CiAKKyAgLyogSWYgT3BlbkFDQyBjb25zdHJ1 Y3QsIHB1dCBkeW5hbWljIGFycmF5IGNsYXVzZXMgKGlmIGFueSkgaW4gZnJv bnQgb2YKKyAgICAgY2xhdXNlIGNoYWluLiBUaGUgcnVudGltZSBjYW4gdGhl biB0ZXN0IHRoZSBmaXJzdCB0byBzZWUgaWYgdGhlCisgICAgIGFkZGl0aW9u YWwgbWFwIHByb2Nlc3NpbmcgZm9yIHRoZW0gaXMgcmVxdWlyZWQuICAqLwor ICBpZiAoaXNfZ2ltcGxlX29tcF9vYWNjIChzdG10KSkKKyAgICByZW9yZGVy X2R5bmFtaWNfYXJyYXlfY2xhdXNlcyAoZ2ltcGxlX29tcF90YXJnZXRfY2xh dXNlc19wdHIgKHN0bXQpKTsKKworICB0cmVlIGNsYXVzZXMgPSBnaW1wbGVf b21wX3RhcmdldF9jbGF1c2VzIChzdG10KTsKKyAgCiAgIHNjYW5fc2hhcmlu Z19jbGF1c2VzIChjbGF1c2VzLCBjdHgpOwogICBzY2FuX29tcCAoZ2ltcGxl X29tcF9ib2R5X3B0ciAoc3RtdCksIGN0eCk7CiAKQEAgLTkxNTEsNiArOTM3 NiwxNSBAQCBsb3dlcl9vbXBfdGFyZ2V0IChnaW1wbGVfc3RtdF9pdGVyYXRv ciAqZ3NpX3AsIG9tcAogCSAgY2FzZSBHT01QX01BUF9GT1JDRV9QUkVTRU5U OgogCSAgY2FzZSBHT01QX01BUF9GT1JDRV9ERVZJQ0VQVFI6CiAJICBjYXNl IEdPTVBfTUFQX0RFVklDRV9SRVNJREVOVDoKKwkgIGNhc2UgR09NUF9NQVBf RFlOQU1JQ19BUlJBWV9UTzoKKwkgIGNhc2UgR09NUF9NQVBfRFlOQU1JQ19B UlJBWV9GUk9NOgorCSAgY2FzZSBHT01QX01BUF9EWU5BTUlDX0FSUkFZX1RP RlJPTToKKwkgIGNhc2UgR09NUF9NQVBfRFlOQU1JQ19BUlJBWV9GT1JDRV9U TzoKKwkgIGNhc2UgR09NUF9NQVBfRFlOQU1JQ19BUlJBWV9GT1JDRV9GUk9N OgorCSAgY2FzZSBHT01QX01BUF9EWU5BTUlDX0FSUkFZX0ZPUkNFX1RPRlJP TToKKwkgIGNhc2UgR09NUF9NQVBfRFlOQU1JQ19BUlJBWV9BTExPQzoKKwkg IGNhc2UgR09NUF9NQVBfRFlOQU1JQ19BUlJBWV9GT1JDRV9BTExPQzoKKwkg IGNhc2UgR09NUF9NQVBfRFlOQU1JQ19BUlJBWV9GT1JDRV9QUkVTRU5UOgog CSAgY2FzZSBHT01QX01BUF9MSU5LOgogCSAgICBnY2NfYXNzZXJ0IChpc19n aW1wbGVfb21wX29hY2MgKHN0bXQpKTsKIAkgICAgYnJlYWs7CkBAIC05MjEz LDcgKzk0NDcsMTQgQEAgbG93ZXJfb21wX3RhcmdldCAoZ2ltcGxlX3N0bXRf aXRlcmF0b3IgKmdzaV9wLCBvbXAKIAlpZiAob2ZmbG9hZGVkICYmICEoT01Q X0NMQVVTRV9DT0RFIChjKSA9PSBPTVBfQ0xBVVNFX01BUAogCQkJICAgJiYg T01QX0NMQVVTRV9NQVBfSU5fUkVEVUNUSU9OIChjKSkpCiAJICB7Ci0JICAg IHggPSBidWlsZF9yZWNlaXZlcl9yZWYgKHZhciwgdHJ1ZSwgY3R4KTsKKwkg ICAgdHJlZSB2YXJfdHlwZSA9IFRSRUVfVFlQRSAodmFyKTsKKwkgICAgYm9v bCByY3ZfYnlfcmVmID0KKwkgICAgICAoT01QX0NMQVVTRV9DT0RFIChjKSA9 PSBPTVBfQ0xBVVNFX01BUAorCSAgICAgICAmJiBHT01QX01BUF9EWU5BTUlD X0FSUkFZX1AgKE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpKQorCSAgICAgICAm JiBUUkVFX0NPREUgKHZhcl90eXBlKSAhPSBBUlJBWV9UWVBFCisJICAgICAg ID8gZmFsc2UgOiB0cnVlKTsKKworCSAgICB4ID0gYnVpbGRfcmVjZWl2ZXJf cmVmICh2YXIsIHJjdl9ieV9yZWYsIGN0eCk7CiAJICAgIHRyZWUgbmV3X3Zh ciA9IGxvb2t1cF9kZWNsICh2YXIsIGN0eCk7CiAKIAkgICAgaWYgKE9NUF9D TEFVU0VfQ09ERSAoYykgPT0gT01QX0NMQVVTRV9NQVAKQEAgLTk0NTcsNiAr OTY5OCwyNSBAQCBsb3dlcl9vbXBfdGFyZ2V0IChnaW1wbGVfc3RtdF9pdGVy YXRvciAqZ3NpX3AsIG9tcAogCQkgICAgYXZhciA9IGJ1aWxkX2ZvbGRfYWRk cl9leHByIChhdmFyKTsKIAkJICAgIGdpbXBsaWZ5X2Fzc2lnbiAoeCwgYXZh ciwgJmlsaXN0KTsKIAkJICB9CisJCWVsc2UgaWYgKE9NUF9DTEFVU0VfQ09E RSAoYykgPT0gT01QX0NMQVVTRV9NQVAKKwkJCSAmJiAoT01QX0NMQVVTRV9N QVBfS0lORCAoYykgJiBHT01QX01BUF9EWU5BTUlDX0FSUkFZKSkKKwkJICB7 CisJCSAgICBpbnQgZGFfZGltX251bTsKKwkJICAgIHRyZWUgZGltZW5zaW9u cyA9IE9NUF9DTEFVU0VfU0laRSAoYyk7CisKKwkJICAgIHRyZWUgZGFfZGVz Y3JfdHlwZSA9CisJCSAgICAgIGNyZWF0ZV9keW5hbWljX2FycmF5X2Rlc2Ny X3R5cGUgKE9NUF9DTEFVU0VfREVDTCAoYyksCisJCQkJCQkgICAgICAgZGlt ZW5zaW9ucywgJmRhX2RpbV9udW0pOworCQkgICAgdHJlZSBkYV9kZXNjciA9 CisJCSAgICAgIGNyZWF0ZV90bXBfdmFyX3JhdyAoZGFfZGVzY3JfdHlwZSwg Ii4kb21wX2RhX2Rlc2NyIik7CisJCSAgICBnaW1wbGVfYWRkX3RtcF92YXIg KGRhX2Rlc2NyKTsKKworCQkgICAgY3JlYXRlX2R5bmFtaWNfYXJyYXlfZGVz Y3JfaW5pdF9jb2RlCisJCSAgICAgIChkYV9kZXNjciwgb3ZhciwgZGltZW5z aW9ucywgZGFfZGltX251bSwgJmlsaXN0KTsKKworCQkgICAgZ2ltcGxpZnlf YXNzaWduICh4LCBidWlsZF9mb2xkX2FkZHJfZXhwciAoZGFfZGVzY3IpLAor CQkJCSAgICAgJmlsaXN0KTsKKwkJICB9CiAJCWVsc2UgaWYgKE9NUF9DTEFV U0VfQ09ERSAoYykgPT0gT01QX0NMQVVTRV9GSVJTVFBSSVZBVEUpCiAJCSAg ewogCQkgICAgZ2NjX2Fzc2VydCAoaXNfZ2ltcGxlX29tcF9vYWNjIChjdHgt PnN0bXQpKTsKQEAgLTk1MTcsNiArOTc3Nyw5IEBAIGxvd2VyX29tcF90YXJn ZXQgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2lfcCwgb21wCiAJCSAgcyA9 IFRSRUVfVFlQRSAocyk7CiAJCXMgPSBUWVBFX1NJWkVfVU5JVCAocyk7CiAJ ICAgICAgfQorCSAgICBlbHNlIGlmIChPTVBfQ0xBVVNFX0NPREUgKGMpID09 IE9NUF9DTEFVU0VfTUFQCisJCSAgICAgJiYgKE9NUF9DTEFVU0VfTUFQX0tJ TkQgKGMpICYgR09NUF9NQVBfRFlOQU1JQ19BUlJBWSkpCisJICAgICAgcyA9 IE5VTExfVFJFRTsKIAkgICAgZWxzZQogCSAgICAgIHMgPSBPTVBfQ0xBVVNF X1NJWkUgKGMpOwogCSAgICBpZiAocyA9PSBOVUxMX1RSRUUpCg== --------------4DC60D30D3B1596E0C037680 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="04-omp-low.descr_create.v1-v2.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="04-omp-low.descr_create.v1-v2.diff" Content-length: 2949 LS0tIHRydW5rLW9yaWcvZ2NjL29tcC1sb3cuYwkyMDE4LTEyLTEyIDE4OjE5 OjQwLjkyMDg1Mjc0NCArMDgwMAorKysgdHJ1bmstd29yay9nY2Mvb21wLWxv dy5jCTIwMTgtMTItMTMgMjI6Mjg6MjkuMTQ5OTEzMjE5ICswODAwCkBAIC0y NjAwLDYgKzI2MDAsNTAgQEAKICAgICBsYXlvdXRfdHlwZSAoY3R4LT5yZWNv cmRfdHlwZSk7CiB9CiAKKy8qIFJlb3JkZXIgY2xhdXNlcyBzbyB0aGF0IGR5 bmFtaWMgYXJyYXkgbWFwIGNsYXVzZXMgYXJlIHBsYWNlZCBhdCB0aGUgdmVy eQorICAgZnJvbnQgb2YgdGhlIGNoYWluLiAgKi8KKworc3RhdGljIHZvaWQK K3Jlb3JkZXJfZHluYW1pY19hcnJheV9jbGF1c2VzICh0cmVlICpjbGF1c2Vz X3B0cikKK3sKKyAgdHJlZSBjLCBjbGF1c2VzID0gKmNsYXVzZXNfcHRyOwor ICB0cmVlIHByZXZfY2xhdXNlID0gTlVMTF9UUkVFLCBuZXh0X2NsYXVzZTsK KyAgdHJlZSBkYV9jbGF1c2VzID0gTlVMTF9UUkVFLCBkYV9jbGF1c2VzX3Rh aWwgPSBOVUxMX1RSRUU7CisKKyAgZm9yIChjID0gY2xhdXNlczsgYzsgYyA9 IG5leHRfY2xhdXNlKQorICAgIHsKKyAgICAgIG5leHRfY2xhdXNlID0gT01Q X0NMQVVTRV9DSEFJTiAoYyk7CisKKyAgICAgIGlmIChPTVBfQ0xBVVNFX0NP REUgKGMpID09IE9NUF9DTEFVU0VfTUFQCisJICAmJiBHT01QX01BUF9EWU5B TUlDX0FSUkFZX1AgKE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpKSkKKwl7CisJ ICAvKiBVbmNoYWluIGMgZnJvbSBjbGF1c2VzLiAgKi8KKwkgIGlmIChjID09 IGNsYXVzZXMpCisJICAgIGNsYXVzZXMgPSBuZXh0X2NsYXVzZTsKKworCSAg LyogTGluayBvbiB0byBkYV9jbGF1c2VzLiAgKi8KKwkgIGlmIChkYV9jbGF1 c2VzX3RhaWwpCisJICAgIE9NUF9DTEFVU0VfQ0hBSU4gKGRhX2NsYXVzZXNf dGFpbCkgPSBjOworCSAgZWxzZQorCSAgICBkYV9jbGF1c2VzID0gYzsKKwkg IGRhX2NsYXVzZXNfdGFpbCA9IGM7CisKKwkgIGlmIChwcmV2X2NsYXVzZSkK KwkgICAgT01QX0NMQVVTRV9DSEFJTiAocHJldl9jbGF1c2UpID0gbmV4dF9j bGF1c2U7CisJICBjb250aW51ZTsKKwl9CisKKyAgICAgIHByZXZfY2xhdXNl ID0gYzsKKyAgICB9ICAKKworICAvKiBQbGFjZSBkeW5hbWljIGFycmF5IGNs YXVzZXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjbGF1c2UgbGlzdC4gICovCisg IGlmIChkYV9jbGF1c2VzKQorICAgIHsKKyAgICAgIE9NUF9DTEFVU0VfQ0hB SU4gKGRhX2NsYXVzZXNfdGFpbCkgPSBjbGF1c2VzOworICAgICAgKmNsYXVz ZXNfcHRyID0gZGFfY2xhdXNlczsKKyAgICB9Cit9CisKIC8qIFNjYW4gYSBH SU1QTEVfT01QX1RBUkdFVC4gICovCiAKIHN0YXRpYyB2b2lkCkBAIC0yNjA4 LDcgKzI2NTIsNiBAQAogICBvbXBfY29udGV4dCAqY3R4OwogICB0cmVlIG5h bWU7CiAgIGJvb2wgb2ZmbG9hZGVkID0gaXNfZ2ltcGxlX29tcF9vZmZsb2Fk ZWQgKHN0bXQpOwotICB0cmVlIGNsYXVzZXMgPSBnaW1wbGVfb21wX3Rhcmdl dF9jbGF1c2VzIChzdG10KTsKIAogICBjdHggPSBuZXdfb21wX2NvbnRleHQg KHN0bXQsIG91dGVyX2N0eCk7CiAgIGN0eC0+ZmllbGRfbWFwID0gc3BsYXlf dHJlZV9uZXcgKHNwbGF5X3RyZWVfY29tcGFyZV9wb2ludGVycywgMCwgMCk7 CkBAIC0yNjI3LDYgKzI2NzAsMTQgQEAKICAgICAgIGdpbXBsZV9vbXBfdGFy Z2V0X3NldF9jaGlsZF9mbiAoc3RtdCwgY3R4LT5jYi5kc3RfZm4pOwogICAg IH0KIAorICAvKiBJZiBPcGVuQUNDIGNvbnN0cnVjdCwgcHV0IGR5bmFtaWMg YXJyYXkgY2xhdXNlcyAoaWYgYW55KSBpbiBmcm9udCBvZgorICAgICBjbGF1 c2UgY2hhaW4uIFRoZSBydW50aW1lIGNhbiB0aGVuIHRlc3QgdGhlIGZpcnN0 IHRvIHNlZSBpZiB0aGUKKyAgICAgYWRkaXRpb25hbCBtYXAgcHJvY2Vzc2lu ZyBmb3IgdGhlbSBpcyByZXF1aXJlZC4gICovCisgIGlmIChpc19naW1wbGVf b21wX29hY2MgKHN0bXQpKQorICAgIHJlb3JkZXJfZHluYW1pY19hcnJheV9j bGF1c2VzIChnaW1wbGVfb21wX3RhcmdldF9jbGF1c2VzX3B0ciAoc3RtdCkp OworCisgIHRyZWUgY2xhdXNlcyA9IGdpbXBsZV9vbXBfdGFyZ2V0X2NsYXVz ZXMgKHN0bXQpOworICAKICAgc2Nhbl9zaGFyaW5nX2NsYXVzZXMgKGNsYXVz ZXMsIGN0eCk7CiAgIHNjYW5fb21wIChnaW1wbGVfb21wX2JvZHlfcHRyIChz dG10KSwgY3R4KTsKIAo= --------------4DC60D30D3B1596E0C037680--