aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2022-08-12 12:04:35 +0200
committerMarc Poulhiès <poulhies@adacore.com>2022-11-07 09:36:31 +0100
commitf073f3355643587073ce224563f509332043c381 (patch)
treea5d67ad6a58684cfd8033fd7d4484e49bbc7da12 /gcc/ada
parent4e92ad48dcfdb726f72f35039c5c102a99bf7759 (diff)
downloadgcc-f073f3355643587073ce224563f509332043c381.zip
gcc-f073f3355643587073ce224563f509332043c381.tar.gz
gcc-f073f3355643587073ce224563f509332043c381.tar.bz2
ada: Clean up unnecesary call in resolution of overloaded expressions
When experimentally enabling frontend inlining by default, the unnecessary call to Comes_From_Predefined_Lib_Unit in Resolve appears to be a performance bottleneck (most likely this call is expensive because it involves a loop over the currently inlined subprograms). Code cleanup; semantics is unaffected. gcc/ada/ * sem_res.adb (Resolve): Only call Comes_From_Predefined_Lib_Unit when its result might be needed.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_res.adb4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 7675070..ea9a03b 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -2370,8 +2370,6 @@ package body Sem_Res is
("prefix must statically denote a non-remote subprogram", N);
end if;
- From_Lib := Comes_From_Predefined_Lib_Unit (N);
-
-- If the context is a Remote_Access_To_Subprogram, access attributes
-- must be resolved with the corresponding fat pointer. There is no need
-- to check for the attribute name since the return type of an
@@ -2505,6 +2503,8 @@ package body Sem_Res is
-- is compatible with the context (i.e. the type passed to Resolve)
else
+ From_Lib := Comes_From_Predefined_Lib_Unit (N);
+
-- Loop through possible interpretations
Get_First_Interp (N, I, It);