From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2087.outbound.protection.outlook.com [40.107.21.87]) by sourceware.org (Postfix) with ESMTPS id C3B863858D28 for ; Wed, 25 Jan 2023 16:55:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C3B863858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=05oH4MZbVXWkpZ6xtHBq6CwioYHWP+Fct65/whwdNIk=; b=+DdqefTrS6459t76sQ/lZu2B22f67VcyHlg+RcaHm2PgyF6qmQalPI20NkyLj7PbwWYBozeNes0IHTzvOiJyLk0T8esnIxRtXqYSonzno2sHdvZQ1xR6hG8yW1frt+8VkePYQj1R3BhbLqXTj4aHDPUv3juLqAULgJd4N/7nGCU= Received: from AS8P251CA0018.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::25) by VE1PR08MB5647.eurprd08.prod.outlook.com (2603:10a6:800:1b2::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Wed, 25 Jan 2023 16:55:46 +0000 Received: from AM7EUR03FT051.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:2f2:cafe::e6) by AS8P251CA0018.outlook.office365.com (2603:10a6:20b:2f2::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.20 via Frontend Transport; Wed, 25 Jan 2023 16:55:46 +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 AM7EUR03FT051.mail.protection.outlook.com (100.127.140.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6023.16 via Frontend Transport; Wed, 25 Jan 2023 16:55:46 +0000 Received: ("Tessian outbound 333ca28169fa:v132"); Wed, 25 Jan 2023 16:55:46 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 890dca69140be37a X-CR-MTA-TID: 64aa7808 Received: from 91931793c466.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 22F0A6CD-FE41-40BB-875E-19A505A9388C.1; Wed, 25 Jan 2023 16:55:39 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 91931793c466.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 25 Jan 2023 16:55:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=In2UFeetmeHtIu5SCOoPmip60PS8StzL4WuiwtWLdV0Z7kPWACngFoCrPnomoSxSEtmLf9OG2J4aNDmMqEi+9u9VX214yx/hiQ6J1ctLFx3upAgzAvz4PPlvfgYyjPObIRkts7pCOYin827Ym7navqMl2C6HemCC3HjM4b7TzrAL1ylrfE5l2/mfNHqZdFVympnSBNFxwdxzfRtzSmhlORpWW444YqXFJFQ5Ne7LIMADBufH/P8D/ueCKj5H0oUmkQwWKG2tuTj4qSHkhR6fiSe/b+s75KTKBDMyBBTP9k47bMWvHrqVWBI/H4z7VZvnKeHjd+O7i7easmP15W4AAQ== 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=05oH4MZbVXWkpZ6xtHBq6CwioYHWP+Fct65/whwdNIk=; b=BEHedccjqnE57wjcyLHiCixzMsKVVwCUR2/7kq7JmQORSNOaRt52PTNtNZ0qN8qCa6SzC8Q875NQirNVVPhYcsBRKSfoNNO9OImsnI895cqrI4IXqjG9rbYTMU5IAvKvKCABvpKpsQiQVjRNjW/hR4qD78vNARb+yf8VXPUlFaei5y9L7WE9d0Zl6kbRbX9NGSiXrFbSZ0DT00ezBfPqecNR7RN59/1lOTPZEcNYQ2cfhWeBVEYxLmWElflTtrKDC4p4e4DliE+XzoGKhvkyacWNI8sUSQkae6iwZ63Ok34S9mR6+RUCRmGzHpG+fA197EvVSJEPnyYpSLCpP8x5hQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=05oH4MZbVXWkpZ6xtHBq6CwioYHWP+Fct65/whwdNIk=; b=+DdqefTrS6459t76sQ/lZu2B22f67VcyHlg+RcaHm2PgyF6qmQalPI20NkyLj7PbwWYBozeNes0IHTzvOiJyLk0T8esnIxRtXqYSonzno2sHdvZQ1xR6hG8yW1frt+8VkePYQj1R3BhbLqXTj4aHDPUv3juLqAULgJd4N/7nGCU= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) by AS8PR08MB9217.eurprd08.prod.outlook.com (2603:10a6:20b:5a0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.21; Wed, 25 Jan 2023 16:55:36 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::bced:32a3:b77e:90a6]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::bced:32a3:b77e:90a6%6]) with mapi id 15.20.6002.033; Wed, 25 Jan 2023 16:55:36 +0000 Message-ID: <801f740d-9186-52dc-5bd4-e3416f001c17@arm.com> Date: Wed, 25 Jan 2023 16:55:33 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v3 2/2] gdb/arm: Use new dwarf2 function cache Content-Language: en-US To: =?UTF-8?Q?Torbj=c3=b6rn_SVENSSON?= , gdb-patches@sourceware.org Cc: tom@tromey.com, Yvan Roux References: <20230119102948.3069226-1-torbjorn.svensson@foss.st.com> <20230119102948.3069226-2-torbjorn.svensson@foss.st.com> From: Luis Machado In-Reply-To: <20230119102948.3069226-2-torbjorn.svensson@foss.st.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P123CA0638.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:296::18) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB3919:EE_|AS8PR08MB9217:EE_|AM7EUR03FT051:EE_|VE1PR08MB5647:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b08693a-ca8e-4fcf-7242-08dafef50106 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: 0LxG7Bsj3yyPZNIPdNfin0oztx5UGvGcp2+/e02Z8EbrLNvUa4jDnXCcw4RYPVzcvLwnAHEwSE473EfYsKUQZ5+RKMOsPrX8IMkbI8LU2KpYLk1Q4DokmSftQDO6KRlkIcYRy0CZt+cGg1eU/bpOquzLGFxwUhBRkWB6yUJyE/cuLvNv4DfCsP1+xxP2AvGWPSxrh15mE9PTSzbVFdiMK8pGRBQY0ib/X1i0BUVhsNieUqov11jcRg5082o+ZSVQEh+SOPhrdEhGJztkeqDkSd1BYaC5tyfApeHPzG07jeZ5xmsNiDUmc8mVAUI0DL8OBIepc8WrpA3cff9gqvSMzky6lhm4ad6cTnC7ElESUeq1NBvz2cxQsOeE4BMw36Z+bjkJZQsQ8ptj35XButdTHFwdZoXTycNYlVNblMC/yg4FEBsD4sbmQX7ZD3reaPsoXyZEPk+6iEpJcoha7gZOpzEerGt8KIWtO3+DKSkdQHsu06Zkf3EzzfirVu9Gu57qOGRJxcgU2AWQKoXWocAUw4b4+IkWc2kkcEe4PyGQ58MIb3AgoRYSgwEg9Wi6IqCgvYETnlp7kQn6RvzL61hyNy8BeT5bDgiutbc37qDnEfbREqJs+FAvo0BDfm+7i+20ExsEpK26ZeOn1yatmdm6GFXIU8tb8Qc6I75RXBk849z9SQQaztL2MUxRuE/GafiGHbtAvMEr7PfRnjZ3rXIcGYR4f/B4FIth0I5HnbFJyK8= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB3919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(136003)(39860400002)(376002)(396003)(366004)(346002)(451199018)(31696002)(86362001)(83380400001)(36756003)(66476007)(66946007)(66556008)(478600001)(6666004)(316002)(6486002)(53546011)(186003)(2906002)(44832011)(41300700001)(4326008)(8676002)(5660300002)(8936002)(6506007)(38100700002)(2616005)(6512007)(26005)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9217 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: AM7EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8f43a23e-b58a-4c6f-28c6-08dafef4fa9e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KbI305VOuiUufUwIME1c2+t7PmilBtyMm+Muec30gmWb8rvdU8B1R7+wOME9gNQWxy6C6C7/1e6QVcXohrw0qBeEVxFUjQt3iHd0ZPe3VO23UStE2vrXeJ56/NcR2iuwzQAbOiVg7iKBQ0KlYncnY0GBmno8H6k6/6k/YpHjxYqpY2SuO3j547UHXZpCQCG1pvqyc06GZfznBUijPMPpWtYU+vMMLTW+Ean5WXuJQs4YER2LAe/OPfjtZ5KjLY+b+1rvcpGbJAXsXKKDv7ULZvaYMHTAq6wXToDuzeb1qgPJ1a8K+YTebjN2K/+oLabOsMgJFWlf+XNlMYx9x+vEunf2NCD7u5DeMA+Sn9JCTK9FUzFxfRYOHTvPlVIZaDkP/zN9tGsYxQif2pAxLHtsVthYo0ZiKjCFi7NozAW4QoLhBN03DNH2Rjv1qZUdzlfRrAeEWT5N4kFQzszqZXKIEaxJ3wqMo7rqVfL/ftB4FWLufXsd5JkPsszCEhGCaehZkF97foGAMPNM1goVCQj2OVvLNm0UKsIjvSyO0fOgyxun7kyq6Q5PA5wUJKnSwldVfT2r4c6RZa3pZ6UOOAjCEK5dt5nWZL3oUFW+mqluizsaOjcI9cAaDJs6bLsAI1OvKe02k6UYX+TxNQXsKlK0IA4DcouFsgJ8VsjaY3GfX4yqqk/ag15Rukowjj99DhP+SN0C78FQQ7WHS2TzrlSUP0LaQZ60I3jX71KYzv4S+8g= 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:(13230025)(4636009)(136003)(396003)(346002)(376002)(39860400002)(451199018)(46966006)(36840700001)(40470700004)(40460700003)(82310400005)(81166007)(316002)(40480700001)(356005)(336012)(36756003)(86362001)(31696002)(82740400003)(26005)(2616005)(70206006)(478600001)(6486002)(186003)(70586007)(53546011)(83380400001)(6506007)(6666004)(8676002)(31686004)(36860700001)(6512007)(41300700001)(47076005)(5660300002)(2906002)(4326008)(8936002)(44832011)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2023 16:55:46.3051 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b08693a-ca8e-4fcf-7242-08dafef50106 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: AM7EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5647 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,NICE_REPLY_A,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 List-Id: On 1/19/23 10:29, Torbjörn SVENSSON wrote: > v2 -> v3: > No changes, just rebase. > > --- > > This patch resolves the performance issue reported in pr/29738 by > caching the values for the stack pointers for the inner frame. By > doing so, the impact can be reduced to checking the state and > returning the appropriate value. > > Signed-off-by: Torbjörn SVENSSON > Signed-off-by: Yvan Roux > --- > gdb/arm-tdep.c | 96 +++++++++++++++++++++++++++++++++----------------- > 1 file changed, 64 insertions(+), 32 deletions(-) > > diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c > index 51ec5236af1..be7219ca66e 100644 > --- a/gdb/arm-tdep.c > +++ b/gdb/arm-tdep.c > @@ -3964,6 +3964,18 @@ struct frame_base arm_normal_base = { > arm_normal_frame_base > }; > > +struct arm_dwarf2_prev_register_cache > +{ > + /* Cached value of the coresponding stack pointer for the inner frame. */ > + CORE_ADDR sp; > + CORE_ADDR msp; > + CORE_ADDR msp_s; > + CORE_ADDR msp_ns; > + CORE_ADDR psp; > + CORE_ADDR psp_s; > + CORE_ADDR psp_ns; > +}; > + > static struct value * > arm_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache, > int regnum) > @@ -3972,6 +3984,48 @@ arm_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache, > arm_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > CORE_ADDR lr; > ULONGEST cpsr; > + struct arm_dwarf2_prev_register_cache *cache > + = (struct arm_dwarf2_prev_register_cache *) dwarf2_frame_get_fn_data ( > + this_frame, this_cache, arm_dwarf2_prev_register); > + > + if (!cache) > + { > + const unsigned int size = sizeof (struct arm_dwarf2_prev_register_cache); > + cache = (struct arm_dwarf2_prev_register_cache *) > + dwarf2_frame_allocate_fn_data (this_frame, this_cache, Still some funny spacing above. Could you please check the patch again, just to be sure? > + arm_dwarf2_prev_register, size); > + > + if (tdep->have_sec_ext) > + { > + cache->sp > + = get_frame_register_unsigned (this_frame, ARM_SP_REGNUM); > + > + cache->msp_s > + = get_frame_register_unsigned (this_frame, > + tdep->m_profile_msp_s_regnum); > + cache->msp_ns > + = get_frame_register_unsigned (this_frame, > + tdep->m_profile_msp_ns_regnum); > + cache->psp_s > + = get_frame_register_unsigned (this_frame, > + tdep->m_profile_psp_s_regnum); > + cache->psp_ns > + = get_frame_register_unsigned (this_frame, > + tdep->m_profile_psp_ns_regnum); > + } > + else if (tdep->is_m) > + { > + cache->sp > + = get_frame_register_unsigned (this_frame, ARM_SP_REGNUM); > + > + cache->msp > + = get_frame_register_unsigned (this_frame, > + tdep->m_profile_msp_regnum); > + cache->psp > + = get_frame_register_unsigned (this_frame, > + tdep->m_profile_psp_regnum); > + } > + } > > if (regnum == ARM_PC_REGNUM) > { > @@ -4011,33 +4065,18 @@ arm_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache, > > if (tdep->have_sec_ext) > { > - CORE_ADDR sp > - = get_frame_register_unsigned (this_frame, ARM_SP_REGNUM); > - CORE_ADDR msp_s > - = get_frame_register_unsigned (this_frame, > - tdep->m_profile_msp_s_regnum); > - CORE_ADDR msp_ns > - = get_frame_register_unsigned (this_frame, > - tdep->m_profile_msp_ns_regnum); > - CORE_ADDR psp_s > - = get_frame_register_unsigned (this_frame, > - tdep->m_profile_psp_s_regnum); > - CORE_ADDR psp_ns > - = get_frame_register_unsigned (this_frame, > - tdep->m_profile_psp_ns_regnum); > - > bool is_msp = (regnum == tdep->m_profile_msp_regnum) > - && (msp_s == sp || msp_ns == sp); > + && (cache->msp_s == cache->sp || cache->msp_ns == cache->sp); > bool is_msp_s = (regnum == tdep->m_profile_msp_s_regnum) > - && (msp_s == sp); > + && (cache->msp_s == cache->sp); > bool is_msp_ns = (regnum == tdep->m_profile_msp_ns_regnum) > - && (msp_ns == sp); > + && (cache->msp_ns == cache->sp); > bool is_psp = (regnum == tdep->m_profile_psp_regnum) > - && (psp_s == sp || psp_ns == sp); > + && (cache->psp_s == cache->sp || cache->psp_ns == cache->sp); > bool is_psp_s = (regnum == tdep->m_profile_psp_s_regnum) > - && (psp_s == sp); > + && (cache->psp_s == cache->sp); > bool is_psp_ns = (regnum == tdep->m_profile_psp_ns_regnum) > - && (psp_ns == sp); > + && (cache->psp_ns == cache->sp); > > override_with_sp_value = is_msp || is_msp_s || is_msp_ns > || is_psp || is_psp_s || is_psp_ns; > @@ -4045,17 +4084,10 @@ arm_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache, > } > else if (tdep->is_m) > { > - CORE_ADDR sp > - = get_frame_register_unsigned (this_frame, ARM_SP_REGNUM); > - CORE_ADDR msp > - = get_frame_register_unsigned (this_frame, > - tdep->m_profile_msp_regnum); > - CORE_ADDR psp > - = get_frame_register_unsigned (this_frame, > - tdep->m_profile_psp_regnum); > - > - bool is_msp = (regnum == tdep->m_profile_msp_regnum) && (sp == msp); > - bool is_psp = (regnum == tdep->m_profile_psp_regnum) && (sp == psp); > + bool is_msp = (regnum == tdep->m_profile_msp_regnum) > + && (cache->sp == cache->msp); > + bool is_psp = (regnum == tdep->m_profile_psp_regnum) > + && (cache->sp == cache->psp); > > override_with_sp_value = is_msp || is_psp; > } Otherwise LGTM for the arm-specific parts.