This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH][ARM] Fix low reg issue in Thumb-2 movsi patterns
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: Richard Earnshaw <Richard dot Earnshaw at arm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: nd <nd at arm dot com>, Kyrylo Tkachov <Kyrylo dot Tkachov at arm dot com>
- Date: Thu, 25 Jul 2019 14:31:00 +0000
- Subject: Re: [PATCH][ARM] Fix low reg issue in Thumb-2 movsi patterns
- 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
- 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-SenderADCheck; bh=JgDR22+T84Dq7n9WLm4yZct1BW4ZKt5pEC/dag1S96o=; b=czP2ONFsur2yCa5WJglDWb47TcTF8kl/KpxbqfHm/+t/4UDBRSu1h7F1rS4mRKe6PD97pwBgggnilP9VuHtf1RUMueZju+FTKDivYpoV7Nwilff2kqdnuALpTYGVrCxWKXRpwfvamALsMwUgejEyzMTLrXkCWEoLqqNmBghAMIJY25WAxUc35++ruQuv0N6O+FzU53APK3Ed+rugstA3P4c1EEk83DivppvRJSNs6XYVXsJ833JjpeOmuwkuU2Hnvgaq3bp3HHwwlPAJ2JTa4RIz6Wcxuy0bt3EcfqLhipUQ49ytgz31YwE5k22J0mAqboR+MWp+5eg4F4TEboKAhw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWUG8d1Gt0yH8EOzuM7xbPtOFtPzEpAdxWvpOm7AbQzsUyM2ELQ7U+wyyoBu+DAMHjY9fNd28jD9i5zJt/IlqAINSQjz6y0NxQ2KFk7Q4Fg2BVkkLIXo59q1/7G0kk0jj6baD98yWwoOtO8DpjCPZDS9M7yutQoz0eU+UZ0gmtYcaus/BRvtkirTkRfB4uQc/6uPy1NkgpCFh0zgwlmcQ/QFjUPGhgFZytlouHSKDUiXajpob0nXWf+BdJOs7CTa4BfP5H4doPvvhgjRXeepms5eS+cggfwwMkUrtC08CYfvMus1T8T1nO4BE1yaHVyBu4CBFQIf9nTOucEpb00kDg==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- References: <VI1PR0801MB21270C389F511EBFD183300583C60@VI1PR0801MB2127.eurprd08.prod.outlook.com>,<firstname.lastname@example.org>
> I think this should be "lk*r", not "l*rk". SP is only going to crop up
> in rare circumstances, but we are always going to need this pattern if
> it does and hiding this from register preferencing is pointless. It's
> not like the compiler is going to start allocating SP in the more
> general case.
'*' only applies to the next constraint, so these are equivalent. I've committed
it with them swapped around, however using 'k' at all here seems redundant
anyway given GCC no longer uses physical registers in most instructions.
> I'd also like to see all these movsi matching patterns merged into a
> single pattern that just enables the appropriate variants. Having
> separate implementations for Arm, thumb2, vfp, iwmmx is just making
> maintenance of this stuff a nightmare.
Yes if we're sure one is a strict superset of the other, we could just merge
them and disable VFP specific variants. However the patterns are quite
complex so it's hard to be 100% sure. Also I think there should be no need
at all for such huge patterns given a load or immediate can never become a
register move and visa versa. So it should be feasible to split into register
moves, loads, stores and immediates.