ada: Inline composite node kind AST queries
commit9b07c1752b9bf49143a41c810e2db86f633fdb1c
authorPiotr Trojanek <trojanek@adacore.com>
Mon, 17 Oct 2022 14:28:20 +0000 (17 16:28 +0200)
committerMarc Poulhiès <poulhies@adacore.com>
Mon, 7 Nov 2022 08:36:34 +0000 (7 09:36 +0100)
tree1a88ecd0593dcefa518315dbf6960ad2bf01c8b8
parent27345558cce16e849884f5d1d4dd7d88974bb724
ada: Inline composite node kind AST queries

Queries that ultimately examine the same field of an AST
node (e.g. Nkind) are visibly more efficient when inlined.

In particular, routines Is_Body_Or_Package_Declaration and Is_Body can
apparently be inlined into a single Nkind membership test.

This patch fixes some of the performance lost with the recent changes,
which increased the number of calls to Is_Body_Or_Package_Declaration
(as it is typically used to prevent AST search from climbing too far).
However, it should be generally beneficial to inline routines like this.

gcc/ada/

* sem_aux.ads (Is_Body): Annotate with Inline.
* sem_util.ads (Is_Body_Or_Package_Declaration): Likewise.
gcc/ada/sem_aux.ads
gcc/ada/sem_util.ads