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.
("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
-- 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);