From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70055.outbound.protection.outlook.com [40.107.7.55]) by sourceware.org (Postfix) with ESMTPS id EA6DA3858429 for ; Fri, 29 Jul 2022 13:52:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EA6DA3858429 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=P3Dh/KC4UwxWyk87HjeFk6MWKbeb8wLvknxZFelgnrh8gU5gsadeD1SRiemWqovPJERYSqPKIRUYuKHgByRsE5FUPPc6S24hu30KQRjeCvgKlAHR0UKGQ07wnzfspOE4NlFygqxjj/o5n4jURlGvFcJ7oGCp98AsyxLFKmf+mNOg+XI+lVHaQE3xWKlqI9ncNjsE77qc4KUAL6GmwZY2xO96i6GeRqqo3Ry67R8d1RN4LXlNts/7C+pGPiHxUyKyWnJNpWvpsaKQUL+7KXaqduCynGig/EcL/OuInuCbxRXMEFIILgR+/0NgQKeKJWlKv0erPdJHQSzDrGlKyM+DTQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=C3pXeMjliM9gSjMdaBmr/Sma+GB4JmaDZectO1im4E8=; b=n6LDoohIe4H1amwLyOaLBEGzjUWXL/qdnXLO380V6NjPwYv77PhL3rdIjOMaMMtwI/Sj/ImgvfWh02wiXaqUw/9C0hE2J9OFtFCFfIG1sCRxkVc8YbQcX/STuERRCHlSwSc3qRbbwnONbwjd/bqdZjXSgl5ugVrQCEcHSrIwpUH1Wezx6Uj8nJ/dwKSXXYRrbFeOvhB+U2TEqPmPuiO4c2+786OSfrj7KAbXlyKe6ryJrSmtHoxHx9zfTQV2PMzMGNTTLoa2JYvWdKTGxR5IO7g/ZYMC1icFRCvWTq5+v21ZpT5a80odlPp3w45qpIZkGaeKO0RKWMD48NnBI4TMkg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from AS9P194CA0030.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::26) by DBAPR08MB5640.eurprd08.prod.outlook.com (2603:10a6:10:1a3::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.11; Fri, 29 Jul 2022 13:52:21 +0000 Received: from AM5EUR03FT045.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:46d:cafe::cd) by AS9P194CA0030.outlook.office365.com (2603:10a6:20b:46d::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.10 via Frontend Transport; Fri, 29 Jul 2022 13:52:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT045.mail.protection.outlook.com (10.152.17.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.12 via Frontend Transport; Fri, 29 Jul 2022 13:52:21 +0000 Received: ("Tessian outbound fa99bf31ee7d:v123"); Fri, 29 Jul 2022 13:52:20 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: dc5c815d4ff01215 X-CR-MTA-TID: 64aa7808 Received: from 6a5b088dabdc.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 55D90020-36EB-4779-AF7B-2FDB4DCA3DD1.1; Fri, 29 Jul 2022 13:52:09 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6a5b088dabdc.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 29 Jul 2022 13:52:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I+MJqrvurt//I+MplZUla75Im/fb1RcjmeAPH1137Jdo4UyikZ4je8UM/shWbaJuoZg9DPmXleURdCXskjvvyv2dPOjkb+i3q2cAHzLuto93MY7+YTV0nGU/crbIaPxDviKTAgnHp5wxx56RLafLidnWmtxQawqvzmht6OaKnMMM2zJCJ5/hINJoapBLYyNakEPzMGo5pYQ4vjmEyC4iSULlZDIt5lTdls98S+Gfay8ZAVD7NFi5iKVCGHVSuklySC/BnqLCHexGTeLwD7D2bJ6gH1puEfeAi9G2UTD6GQR5hNRL6y+Hq7tR0HKOIY2w5gcnZuScm/jD4m0wJp7W5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=C3pXeMjliM9gSjMdaBmr/Sma+GB4JmaDZectO1im4E8=; b=G2ZsfDFozidLuYqmDGyqxBrPfDAo5X0/XcZXZVoCeN6TYJl8cBYcFi+JGp8pyjVOwhV9/9PNuILlzRmC5xo+8axR8PkSSg4LbrztjCYDmiYu139aoEr80ohb95WAfVsCeS5cC1LKs1hjupvsWLwEhzaxYdeKJ+9wA9aaGYmvic5ZYWVRETO6Q0sEuTzFDKD6nrMetF1FW2R77+L9ZdJ+L6sxQHTDRdWFii2uU119CnoxwPedtmDjNoqKmg9mj8/kMOz1CDRqwgCWOiqr7KVSNQx1pxxg8MXDsu4oWQWKBx6SzuTD2t6d4Y65WV3oegTOO78O7DbRYOlnY6zyoHqIaw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7115.eurprd08.prod.outlook.com (2603:10a6:10:2c8::5) by PAXPR08MB7419.eurprd08.prod.outlook.com (2603:10a6:102:2ba::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.10; Fri, 29 Jul 2022 13:52:06 +0000 Received: from DB9PR08MB7115.eurprd08.prod.outlook.com ([fe80::583a:e544:1057:9d7b]) by DB9PR08MB7115.eurprd08.prod.outlook.com ([fe80::583a:e544:1057:9d7b%8]) with mapi id 15.20.5482.010; Fri, 29 Jul 2022 13:52:06 +0000 Content-Type: multipart/mixed; boundary="------------CPMXG1EKonpjdPPhRBvcjamr" Message-ID: Date: Fri, 29 Jul 2022 14:52:03 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-GB To: "gcc-patches@gcc.gnu.org" , Richard Biener From: Richard Earnshaw Subject: [PATCH v2] cselib: add function to check if SET is redundant [PR106187] Organization: Arm Ltd X-ClientProxiedBy: LO4P123CA0422.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18b::13) To DB9PR08MB7115.eurprd08.prod.outlook.com (2603:10a6:10:2c8::5) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: b72a0797-882e-4a66-faf3-08da71698f01 X-MS-TrafficTypeDiagnostic: PAXPR08MB7419:EE_|AM5EUR03FT045:EE_|DBAPR08MB5640:EE_ x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Wuy1xAyV4K3diHvGKHDrvl9pOuaC+zYGiqpjCpjgdAxnQj/ANch9FzeDXN/PA0JfgipEoclbqN2s+YJ1zrmCGRbl6IVrrtHMSzz6lxFMhP91O3JJCxnDpXvdZ3Z5zQ9o0LD2Jm3X9EiU3hV0kzQbbLys4laZkRmsR/ByjwbGO26izvd4Lau7UxwxHwz3RFkY+YoQ4CERtvw00BPqBsfnOwvodtTw+HYxbRMdhBlXDiff2eHU9diFVTOpUqDsk9w4f+DXJaAXFHfujCVuOeAsSU44EHUcdUyE5f+eSw3d0eZ/dbc2EtKXhBnQ7Jb2b+cUN3wMI8HC2/1w9bPlOEyuneTuLcIFcA2iOkuVHpPu3VKTPudwNSQTTq8tt4KpHDLEiozbm0aPmdlKPtFIxSPp/vUyU3axA7OjhcfF1mxeBXx3m2zvKObS3viNQOuoZ1tLF1yUyZFhbPzIttSFWGwqx4KzZZEvKTMDGJJLNaFZumtYFs23o4L3aORfJ6YpBCspZ+694BzHVq0mB9EmDm7Nq7R4+d+AjIqKEoskswWTlCjxnt2HN1hchnM5qr0Gh7EiGBdKD1XFIO2TIuVGuVMNbh9R788jJBCKe+9HY+Q1A8k42z5BgIZKO1RDs3lClIXvVcoHD4wmjbOS6q2pl8qMTN8TAwlqHT5xqwxHYSJJzD6fEPN6avM7pytHxuj7dc+SLTVM4MmReLS5bhcBsi5vbod5eDZI1DClaWd/17Sq6vfMdqW6BWh/pJh8Ohyt41lLUsxN/AJ9nyVNFM7DLxL+eaKS2yH8QmAmN1jjYtU1De9dqf5YUEmLRenj+dbLUaucZgKZI5nKoPPKC2wtjMgmuw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB7115.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(366004)(396003)(376002)(136003)(346002)(110136005)(316002)(186003)(2616005)(83380400001)(6486002)(6666004)(41300700001)(478600001)(6512007)(26005)(36916002)(33964004)(6506007)(38100700002)(2906002)(31686004)(8936002)(235185007)(5660300002)(8676002)(36756003)(31696002)(86362001)(66946007)(66556008)(66476007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7419 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1d1afd0c-7a7b-4629-fc80-08da7169861f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JRF/tzGoUVXhw6SAXcLMdG6Svb8fggIidUUXkm8xUJDHq63obJU5PZy6f3WWNSlfSzXEEArO+TLxD2ZUqalypnYfqCSujW8rnv4Z2hiS5d079bsxmiw5/1DbQ4dkFV+xk2K3a4YXEe6M8Hnp9/6+7O/6/G6rqgI3FbZbg4AA3wAhz8/UW9vifsvuZhRaXyhSrwQIWst+dZlWu3XoV/+FaWu99ruXnfAVmGiD/w8h5pZy75IcTQtlhH8Ktw66aRLD1hAfA6oNj0OWhjwl5EYfyBNgKSf/7ywz7xJeqb4SS7Kgyhca8Fkb2cZPpQimFaFSWcZv00hGkJ5DnSUnkWWUIecvtSx7UR/rR7CkezIVEwKA5hdddKuFLEznuMrIj184j8kufxGCg7T3CLrSRJHAAcPjG7Ns9K5GrRVsSuY6dKPds+AklCtAoonDSI/JNzw9DIIgH9WbyN5Z3GkV/7f/JlG68RvQT53KZiJ8M4soL9ulXXR6E+9Vz2p0lZg3/QsJZqyieyt4XvjgYDUFlOiHTOL2k75WxPDzy8Ep8YJADHotrKbqHYDOfIWKKB5EsQZwsb7kLObDhx3t0FAV1PI4RWfXuwFfrt/aHVtSH731NwjDU3SqGRxY+9HqzfTIhkWBqUj99mT4Hl2im0OukdCvkA4Ych0KJBlEYg4onqARZBgzMTr5sE00zAtZqDdtsH/YWM+4V3SFxNTu8Qn2NzltzkRZGro90CzFrs2L35oAnTSI27wdvQOYDh3SxD/9L2q6Dr1e89mhF4v47P2Eju0vz13vLJ8ia23Yk1zEhfpgXdPgyMs553cfPv8hfU0jpwolCqn8pGBqIXv055kgSmBkHg== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(396003)(376002)(346002)(136003)(46966006)(40470700004)(36840700001)(6666004)(41300700001)(33964004)(478600001)(6512007)(235185007)(2906002)(8936002)(36916002)(5660300002)(40480700001)(86362001)(36756003)(82310400005)(31686004)(26005)(6506007)(6486002)(110136005)(40460700003)(31696002)(82740400003)(356005)(81166007)(47076005)(2616005)(186003)(336012)(83380400001)(8676002)(316002)(36860700001)(70206006)(70586007)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jul 2022 13:52:21.0185 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b72a0797-882e-4a66-faf3-08da71698f01 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5640 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jul 2022 13:52:26 -0000 --------------CPMXG1EKonpjdPPhRBvcjamr Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit A SET operation that writes memory may have the same value as an earlier store but if the alias sets of the new and earlier store do not conflict then the set is not truly redundant. This can happen, for example, if objects of different types share a stack slot. To fix this we define a new function in cselib that first checks for equality and if that is successful then finds the earlier store in the value history and checks the alias sets. The routine is used in two places elsewhere in the compiler. Firstly in cfgcleanup and secondly in postreload. gcc/ChangeLog: * alias.h (mems_same_for_tbaa_p): Declare. * alias.cc (mems_same_for_tbaa_p): New function. * dse.cc (record_store): Use it instead of open-coding alias check. * cselib.h (cselib_redundant_set_p): Declare. * cselib.cc: Include alias.h (cselib_redundant_set_p): New function. * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead of rtx_equal_for_cselib_p. * postreload.c (reload_cse_simplify): Use cselib_redundant_set_p. (reload_cse_noop_set_p): Delete. --------------CPMXG1EKonpjdPPhRBvcjamr Content-Type: text/x-patch; charset=UTF-8; name="pr106187-master.patch" Content-Disposition: attachment; filename="pr106187-master.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9hbGlhcy5jYyBiL2djYy9hbGlhcy5jYwppbmRleCA4YzA4NDUyZTBh Yy4uZDU0ZmViMTUyNjggMTAwNjQ0Ci0tLSBhL2djYy9hbGlhcy5jYworKysgYi9nY2MvYWxpYXMu Y2MKQEAgLTM4OSw2ICszODksMjAgQEAgcmVmc19zYW1lX2Zvcl90YmFhX3AgKHRyZWUgZWFybGll ciwgdHJlZSBsYXRlcikKIAkgIHx8IGFsaWFzX3NldF9zdWJzZXRfb2YgKGxhdGVyX2Jhc2Vfc2V0 LCBlYXJsaWVyX2Jhc2Vfc2V0KSk7CiB9CiAKKy8qIFNpbWlsYXIgdG8gcmVmc19zYW1lX2Zvcl90 YmFhX3AoKSBidXQgZm9yIHVzZSBvbiBNRU0gcnR4cy4gICovCitib29sCittZW1zX3NhbWVfZm9y X3RiYWFfcCAocnR4IGVhcmxpZXIsIHJ0eCBsYXRlcikKK3sKKyAgZ2NjX2Fzc2VydCAoTUVNX1Ag KGVhcmxpZXIpKTsKKyAgZ2NjX2Fzc2VydCAoTUVNX1AgKGxhdGVyKSk7CisKKyAgcmV0dXJuICgo TUVNX0FMSUFTX1NFVCAoZWFybGllcikgPT0gTUVNX0FMSUFTX1NFVCAobGF0ZXIpCisJICAgfHwg YWxpYXNfc2V0X3N1YnNldF9vZiAoTUVNX0FMSUFTX1NFVCAobGF0ZXIpLAorCQkJCSAgIE1FTV9B TElBU19TRVQgKGVhcmxpZXIpKSkKKwkgICYmICghTUVNX0VYUFIgKGVhcmxpZXIpCisJICAgICAg fHwgcmVmc19zYW1lX2Zvcl90YmFhX3AgKE1FTV9FWFBSIChlYXJsaWVyKSwgTUVNX0VYUFIgKGxh dGVyKSkpKTsKK30KKwogLyogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGFsaWFzIHNldCBlbnRy eSBmb3IgQUxJQVNfU0VULCBpZiB0aGVyZSBpcwogICAgc3VjaCBhbiBlbnRyeSwgb3IgTlVMTCBv dGhlcndpc2UuICAqLwogCmRpZmYgLS1naXQgYS9nY2MvYWxpYXMuaCBiL2djYy9hbGlhcy5oCmlu ZGV4IGIyNTk2NTE4YWM5Li5lZTNkYjQ2Njc2MyAxMDA2NDQKLS0tIGEvZ2NjL2FsaWFzLmgKKysr IGIvZ2NjL2FsaWFzLmgKQEAgLTQwLDYgKzQwLDcgQEAgdHJlZSByZWZlcmVuY2VfYWxpYXNfcHRy X3R5cGVfMSAodHJlZSAqKTsKIGJvb2wgYWxpYXNfcHRyX3R5cGVzX2NvbXBhdGlibGVfcCAodHJl ZSwgdHJlZSk7CiBpbnQgY29tcGFyZV9iYXNlX2RlY2xzICh0cmVlLCB0cmVlKTsKIGJvb2wgcmVm c19zYW1lX2Zvcl90YmFhX3AgKHRyZWUsIHRyZWUpOworYm9vbCBtZW1zX3NhbWVfZm9yX3RiYWFf cCAocnR4LCBydHgpOwogCiAvKiBUaGlzIGFsaWFzIHNldCBjYW4gYmUgdXNlZCB0byBmb3JjZSBh IG1lbW9yeSB0byBjb25mbGljdCB3aXRoIGFsbAogICAgb3RoZXIgbWVtb3JpZXMsIGNyZWF0aW5n IGEgYmFycmllciBhY3Jvc3Mgd2hpY2ggbm8gbWVtb3J5IHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEv Z2NjL2NmZ2NsZWFudXAuY2MgYi9nY2MvY2ZnY2xlYW51cC5jYwppbmRleCAxODA0N2RhN2IyNC4u YThiMDEzOWJiNGQgMTAwNjQ0Ci0tLSBhL2djYy9jZmdjbGVhbnVwLmNjCisrKyBiL2djYy9jZmdj bGVhbnVwLmNjCkBAIC0yMDgsNyArMjA4LDcgQEAgbWFya19lZmZlY3QgKHJ0eCBleHAsIHJlZ3Nl dCBub25lcXVhbCkKICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNhc2UgU0VUOgotICAgICAg aWYgKHJ0eF9lcXVhbF9mb3JfY3NlbGliX3AgKFNFVF9ERVNUIChleHApLCBTRVRfU1JDIChleHAp KSkKKyAgICAgIGlmIChjc2VsaWJfcmVkdW5kYW50X3NldF9wIChleHApKQogCXJldHVybiBmYWxz ZTsKICAgICAgIGRlc3QgPSBTRVRfREVTVCAoZXhwKTsKICAgICAgIGlmIChkZXN0ID09IHBjX3J0 eCkKZGlmZiAtLWdpdCBhL2djYy9jc2VsaWIuY2MgYi9nY2MvY3NlbGliLmNjCmluZGV4IDY3Njli ZWVlYWY4Li42YTU2MDk3ODZmYSAxMDA2NDQKLS0tIGEvZ2NjL2NzZWxpYi5jYworKysgYi9nY2Mv Y3NlbGliLmNjCkBAIC0zMiw2ICszMiw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUg Q09QWUlORzMuICBJZiBub3Qgc2VlCiAjaW5jbHVkZSAiZHVtcGZpbGUuaCIKICNpbmNsdWRlICJj c2VsaWIuaCIKICNpbmNsdWRlICJmdW5jdGlvbi1hYmkuaCIKKyNpbmNsdWRlICJhbGlhcy5oIgog CiAvKiBBIGxpc3Qgb2YgY3NlbGliX3ZhbCBzdHJ1Y3R1cmVzLiAgKi8KIHN0cnVjdCBlbHRfbGlz dApAQCAtMTE1Nyw2ICsxMTU4LDc1IEBAIHJ0eF9lcXVhbF9mb3JfY3NlbGliXzEgKHJ0eCB4LCBy dHggeSwgbWFjaGluZV9tb2RlIG1lbW1vZGUsIGludCBkZXB0aCkKICAgcmV0dXJuIDE7CiB9CiAK Ky8qIFdyYXBwZXIgZm9yIHJ0eF9lcXVhbF9mb3JfY3NlbGliX3AgdG8gZGV0ZXJtaW5lIHdoZXRo ZXIgYSBTRVQgaXMKKyAgIHRydWx5IHJlZHVuZGFudCwgdGFraW5nIGludG8gYWNjb3VudCBhbGlh c2luZyBpbmZvcm1hdGlvbi4gICovCitib29sCitjc2VsaWJfcmVkdW5kYW50X3NldF9wIChydHgg c2V0KQoreworICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAoc2V0KSA9PSBTRVQpOworICBydHggZGVz dCA9IFNFVF9ERVNUIChzZXQpOworICBpZiAoY3NlbGliX3JlZ19zZXRfbW9kZSAoZGVzdCkgIT0g R0VUX01PREUgKGRlc3QpKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoIXJ0eF9lcXVhbF9m b3JfY3NlbGliX3AgKGRlc3QsIFNFVF9TUkMgKHNldCkpKQorICAgIHJldHVybiBmYWxzZTsKKwor ICB3aGlsZSAoR0VUX0NPREUgKGRlc3QpID09IFNVQlJFRworCSB8fCBHRVRfQ09ERSAoZGVzdCkg PT0gWkVST19FWFRSQUNUCisJIHx8IEdFVF9DT0RFIChkZXN0KSA9PSBTVFJJQ1RfTE9XX1BBUlQp CisgICAgZGVzdCA9IFhFWFAgKGRlc3QsIDApOworCisgIGlmICghZmxhZ19zdHJpY3RfYWxpYXNp bmcgfHwgIU1FTV9QIChkZXN0KSkKKyAgICByZXR1cm4gdHJ1ZTsKKworICAvKiBGb3IgYSBzdG9y ZSB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgc3VwcHJlc3NpbmcgaXQgd2lsbCBub3QgY2hhbmdlCisg ICAgIHRoZSBlZmZlY3RpdmUgYWxpYXMgc2V0LiAgKi8KKyAgcnR4IGRlc3RfYWRkciA9IFhFWFAg KGRlc3QsIDApOworCisgIC8qIExvb2t1cCB0aGUgZXF1aXZhbGVudHMgdG8gdGhlIG9yaWdpbmFs IGRlc3QgKHJhdGhlciB0aGFuIGp1c3QgdGhlCisgICAgIE1FTSkuICAqLworICBjc2VsaWJfdmFs ICpzcmNfdmFsID0gY3NlbGliX2xvb2t1cCAoU0VUX0RFU1QgKHNldCksCisJCQkJICAgICAgIEdF VF9NT0RFIChTRVRfREVTVCAoc2V0KSksCisJCQkJICAgICAgIDAsIFZPSURtb2RlKTsKKworICBp ZiAoc3JjX3ZhbCkKKyAgICB7CisgICAgICAvKiBXYWxrIHRoZSBsaXN0IG9mIHNvdXJjZSBlcXVp dmFsZW50cyB0byBmaW5kIHRoZSBNRU0gYWNjZXNzaW5nCisJIHRoZSBzYW1lIGxvY2F0aW9uLiAg Ki8KKyAgICAgIGZvciAoZWx0X2xvY19saXN0ICpsID0gc3JjX3ZhbC0+bG9jczsgbDsgbCA9IGwt Pm5leHQpCisJeworCSAgcnR4IHNyY19lcXVpdiA9IGwtPmxvYzsKKwkgIHdoaWxlIChHRVRfQ09E RSAoc3JjX2VxdWl2KSA9PSBTVUJSRUcKKwkJIHx8IEdFVF9DT0RFIChzcmNfZXF1aXYpID09IFpF Uk9fRVhUUkFDVAorCQkgfHwgR0VUX0NPREUgKHNyY19lcXVpdikgPT0gU1RSSUNUX0xPV19QQVJU KQorCSAgICBzcmNfZXF1aXYgPSBYRVhQIChzcmNfZXF1aXYsIDApOworCisJICBpZiAoTUVNX1Ag KHNyY19lcXVpdikpCisJICAgIHsKKwkgICAgICAvKiBNYXRjaCB0aGUgTUVNcyBieSBjb21wYXJp bmcgdGhlIGFkZHJlc3Nlcy4gIFdlIGNhbgorCQkgb25seSByZW1vdmUgdGhlIGxhdGVyIHN0b3Jl IGlmIHRoZSBlYXJsaWVyIGFsaWFzZXMgYXQKKwkJIGxlYXN0IGFsbCB0aGUgYWNjZXNzZXMgb2Yg dGhlIGxhdGVyIG9uZS4gICovCisJICAgICAgaWYgKHJ0eF9lcXVhbF9mb3JfY3NlbGliXzEgKGRl c3RfYWRkciwgWEVYUCAoc3JjX2VxdWl2LCAwKSwKKwkJCQkJICBHRVRfTU9ERSAoZGVzdCksIDAp KQorCQlyZXR1cm4gbWVtc19zYW1lX2Zvcl90YmFhX3AgKHNyY19lcXVpdiwgZGVzdCk7CisJICAg IH0KKwl9CisgICAgfQorCisgIC8qIFdlIGZhaWxlZCB0byBmaW5kIGEgcmVjb3JkZWQgdmFsdWUg aW4gdGhlIGNzZWxpYiBoaXN0b3J5LCBzbyB0cnkKKyAgICAgdGhlIHNvdXJjZSBvZiB0aGlzIHNl dDsgdGhpcyBjYXRjaGVzIGNhc2VzIHN1Y2ggYXMgKnAgPSAqcSB3aGVuIHAKKyAgICAgYW5kIHEg aGF2ZSB0aGUgc2FtZSB2YWx1ZS4gICovCisgIHJ0eCBzcmMgPSBTRVRfU1JDIChzZXQpOworICB3 aGlsZSAoR0VUX0NPREUgKHNyYykgPT0gU1VCUkVHKQorICAgIHNyYyA9IFhFWFAgKHNyYywgMCk7 CisKKyAgaWYgKE1FTV9QIChzcmMpCisgICAgICAmJiBydHhfZXF1YWxfZm9yX2NzZWxpYl8xIChk ZXN0X2FkZHIsIFhFWFAgKHNyYywgMCksIEdFVF9NT0RFIChkZXN0KSwgMCkpCisgICAgcmV0dXJu IG1lbXNfc2FtZV9mb3JfdGJhYV9wIChzcmMsIGRlc3QpOworCisgIHJldHVybiBmYWxzZTsKK30K KwogLyogSGVscGVyIGZ1bmN0aW9uIGZvciBjc2VsaWJfaGFzaF9ydHguICBBcmd1bWVudHMgbGlr ZSBmb3IgY3NlbGliX2hhc2hfcnR4LAogICAgZXhjZXB0IHRoYXQgaXQgaGFzaGVzIChwbHVzOlAg eCBjKS4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9jc2VsaWIuaCBiL2djYy9jc2VsaWIuaAppbmRl eCA5YWU2NWU2NDU5ZS4uYjA5MDUwNTNlYTUgMTAwNjQ0Ci0tLSBhL2djYy9jc2VsaWIuaAorKysg Yi9nY2MvY3NlbGliLmgKQEAgLTgzLDYgKzgzLDcgQEAgZXh0ZXJuIHZvaWQgY3NlbGliX3Byb2Nl c3NfaW5zbiAocnR4X2luc24gKik7CiBleHRlcm4gYm9vbCBmcF9zZXR0ZXJfaW5zbiAocnR4X2lu c24gKik7CiBleHRlcm4gbWFjaGluZV9tb2RlIGNzZWxpYl9yZWdfc2V0X21vZGUgKGNvbnN0X3J0 eCk7CiBleHRlcm4gaW50IHJ0eF9lcXVhbF9mb3JfY3NlbGliXzEgKHJ0eCwgcnR4LCBtYWNoaW5l X21vZGUsIGludCk7CitleHRlcm4gYm9vbCBjc2VsaWJfcmVkdW5kYW50X3NldF9wIChydHgpOwog ZXh0ZXJuIGludCByZWZlcmVuY2VzX3ZhbHVlX3AgKGNvbnN0X3J0eCwgaW50KTsKIGV4dGVybiBy dHggY3NlbGliX2V4cGFuZF92YWx1ZV9ydHggKHJ0eCwgYml0bWFwLCBpbnQpOwogdHlwZWRlZiBy dHggKCpjc2VsaWJfZXhwYW5kX2NhbGxiYWNrKShydHgsIGJpdG1hcCwgaW50LCB2b2lkICopOwpk aWZmIC0tZ2l0IGEvZ2NjL2RzZS5jYyBiL2djYy9kc2UuY2MKaW5kZXggOTBhNGMxZjIyZGIuLjBm N2IwZmI5Nzk2IDEwMDY0NAotLS0gYS9nY2MvZHNlLmNjCisrKyBiL2djYy9kc2UuY2MKQEAgLTE1 NzAsMTIgKzE1NzAsNyBAQCByZWNvcmRfc3RvcmUgKHJ0eCBib2R5LCBiYl9pbmZvX3QgYmJfaW5m bykKIAkJCQkJIHdpZHRoKQogCSAgICAgIC8qIFdlIGNhbiBvbmx5IHJlbW92ZSB0aGUgbGF0ZXIg c3RvcmUgaWYgdGhlIGVhcmxpZXIgYWxpYXNlcwogCQkgYXQgbGVhc3QgYWxsIGFjY2Vzc2VzIHRo ZSBsYXRlciBvbmUuICAqLwotCSAgICAgICYmICgoTUVNX0FMSUFTX1NFVCAobWVtKSA9PSBNRU1f QUxJQVNfU0VUIChzX2luZm8tPm1lbSkKLQkJICAgfHwgYWxpYXNfc2V0X3N1YnNldF9vZiAoTUVN X0FMSUFTX1NFVCAobWVtKSwKLQkJCQkJICAgTUVNX0FMSUFTX1NFVCAoc19pbmZvLT5tZW0pKSkK LQkJICAmJiAoIU1FTV9FWFBSIChzX2luZm8tPm1lbSkKLQkJICAgICAgfHwgcmVmc19zYW1lX2Zv cl90YmFhX3AgKE1FTV9FWFBSIChzX2luZm8tPm1lbSksCi0JCQkJCSAgICAgICBNRU1fRVhQUiAo bWVtKSkpKSkKKwkgICAgICAmJiBtZW1zX3NhbWVfZm9yX3RiYWFfcCAoc19pbmZvLT5tZW0sIG1l bSkpCiAJICAgIHsKIAkgICAgICBpZiAoR0VUX01PREUgKG1lbSkgPT0gQkxLbW9kZSkKIAkJewpk aWZmIC0tZ2l0IGEvZ2NjL3Bvc3RyZWxvYWQuY2MgYi9nY2MvcG9zdHJlbG9hZC5jYwppbmRleCBk MWM5OWZlNmRjOS4uNDFmNjFkMzI2NDggMTAwNjQ0Ci0tLSBhL2djYy9wb3N0cmVsb2FkLmNjCisr KyBiL2djYy9wb3N0cmVsb2FkLmNjCkBAIC00Myw3ICs0Myw2IEBAIGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjaW5jbHVkZSAiZnVuY3Rpb24tYWJp LmgiCiAjaW5jbHVkZSAicnRsLWl0ZXIuaCIKIAotc3RhdGljIGludCByZWxvYWRfY3NlX25vb3Bf c2V0X3AgKHJ0eCk7CiBzdGF0aWMgYm9vbCByZWxvYWRfY3NlX3NpbXBsaWZ5IChydHhfaW5zbiAq LCBydHgpOwogc3RhdGljIHZvaWQgcmVsb2FkX2NzZV9yZWdzXzEgKHZvaWQpOwogc3RhdGljIGlu dCByZWxvYWRfY3NlX3NpbXBsaWZ5X3NldCAocnR4LCBydHhfaW5zbiAqKTsKQEAgLTc0LDE2ICs3 Myw2IEBAIHJlbG9hZF9jc2VfcmVncyAocnR4X2luc24gKmZpcnN0IEFUVFJJQlVURV9VTlVTRUQp CiAgICAgfQogfQogCi0vKiBTZWUgd2hldGhlciBhIHNpbmdsZSBzZXQgU0VUIGlzIGEgbm9vcC4g ICovCi1zdGF0aWMgaW50Ci1yZWxvYWRfY3NlX25vb3Bfc2V0X3AgKHJ0eCBzZXQpCi17Ci0gIGlm IChjc2VsaWJfcmVnX3NldF9tb2RlIChTRVRfREVTVCAoc2V0KSkgIT0gR0VUX01PREUgKFNFVF9E RVNUIChzZXQpKSkKLSAgICByZXR1cm4gMDsKLQotICByZXR1cm4gcnR4X2VxdWFsX2Zvcl9jc2Vs aWJfcCAoU0VUX0RFU1QgKHNldCksIFNFVF9TUkMgKHNldCkpOwotfQotCiAvKiBUcnkgdG8gc2lt cGxpZnkgSU5TTi4gIFJldHVybiB0cnVlIGlmIHRoZSBDRkcgbWF5IGhhdmUgY2hhbmdlZC4gICov CiBzdGF0aWMgYm9vbAogcmVsb2FkX2NzZV9zaW1wbGlmeSAocnR4X2luc24gKmluc24sIHJ0eCB0 ZXN0cmVnKQpAQCAtMTE4LDcgKzEwNyw3IEBAIHJlbG9hZF9jc2Vfc2ltcGxpZnkgKHJ0eF9pbnNu ICppbnNuLCBydHggdGVzdHJlZykKICAgICAgICAgIHRoaXMgb3V0LCBzbyBpdCdzIHNhZmVyIHRv IHNpbXBsaWZ5IGJlZm9yZSB3ZSBkZWxldGUuICAqLwogICAgICAgY291bnQgKz0gcmVsb2FkX2Nz ZV9zaW1wbGlmeV9zZXQgKGJvZHksIGluc24pOwogCi0gICAgICBpZiAoIWNvdW50ICYmIHJlbG9h ZF9jc2Vfbm9vcF9zZXRfcCAoYm9keSkpCisgICAgICBpZiAoIWNvdW50ICYmIGNzZWxpYl9yZWR1 bmRhbnRfc2V0X3AgKGJvZHkpKQogCXsKIAkgIGlmIChjaGVja19mb3JfaW5jX2RlYyAoaW5zbikp CiAJICAgIGRlbGV0ZV9pbnNuX2FuZF9lZGdlcyAoaW5zbik7CkBAIC0xNTcsNyArMTQ2LDcgQEAg cmVsb2FkX2NzZV9zaW1wbGlmeSAocnR4X2luc24gKmluc24sIHJ0eCB0ZXN0cmVnKQogCSAgcnR4 IHBhcnQgPSBYVkVDRVhQIChib2R5LCAwLCBpKTsKIAkgIGlmIChHRVRfQ09ERSAocGFydCkgPT0g U0VUKQogCSAgICB7Ci0JICAgICAgaWYgKCEgcmVsb2FkX2NzZV9ub29wX3NldF9wIChwYXJ0KSkK KwkgICAgICBpZiAoISBjc2VsaWJfcmVkdW5kYW50X3NldF9wIChwYXJ0KSkKIAkJYnJlYWs7CiAJ ICAgICAgaWYgKFJFR19QIChTRVRfREVTVCAocGFydCkpCiAJCSAgJiYgUkVHX0ZVTkNUSU9OX1ZB TFVFX1AgKFNFVF9ERVNUIChwYXJ0KSkpCg== --------------CPMXG1EKonpjdPPhRBvcjamr--