aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_util.ads
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2022-10-17 16:28:20 +0200
committerMarc Poulhiès <poulhies@adacore.com>2022-11-07 09:36:34 +0100
commit9b07c1752b9bf49143a41c810e2db86f633fdb1c (patch)
tree1a88ecd0593dcefa518315dbf6960ad2bf01c8b8 /gcc/ada/sem_util.ads
parent27345558cce16e849884f5d1d4dd7d88974bb724 (diff)
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.
Diffstat (limited to 'gcc/ada/sem_util.ads')
-rw-r--r--gcc/ada/sem_util.ads3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
index 5c08cb8b9ab..2126beda510 100644
--- a/gcc/ada/sem_util.ads
+++ b/gcc/ada/sem_util.ads
@@ -1881,7 +1881,8 @@ package Sem_Util is
function Is_Attribute_Update (N : Node_Id) return Boolean;
-- Determine whether node N denotes attribute 'Update
- function Is_Body_Or_Package_Declaration (N : Node_Id) return Boolean;
+ function Is_Body_Or_Package_Declaration (N : Node_Id) return Boolean
+ with Inline;
-- Determine whether node N denotes a body or a package declaration
function Is_Bounded_String (T : Entity_Id) return Boolean;