diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-08-12 12:04:35 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2022-11-07 09:36:31 +0100 |
commit | f073f3355643587073ce224563f509332043c381 (patch) | |
tree | a5d67ad6a58684cfd8033fd7d4484e49bbc7da12 /gcc/ada | |
parent | 4e92ad48dcfdb726f72f35039c5c102a99bf7759 (diff) | |
download | gcc-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.adb | 4 |
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); |