From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7871) id 3D4043858C2C; Mon, 7 Nov 2022 08:38:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3D4043858C2C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667810332; bh=g9ul1Zeayg2lTMLQllcHFRDU2xU5rvpphrP1zIDJ8kE=; h=From:To:Subject:Date:From; b=aJ6wE5aZ7NsqwhsPqIhqphUM986a/Ej4YJWVlilSxcnpe2Ps5XF+FJ3fyizfvT4aV iBu+0/NrvzKRPqESgbkBtkhK3TD9HHgz2uIWS3ZlSbauwOZSLJmKSSGDrfkT86RY1b LTuAyaBbeps3isQzS39dMootdvc7T8LmcFIgD/8o= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Marc Poulhi?s To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-3728] ada: Clean up unnecesary call in resolution of overloaded expressions X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: 4e92ad48dcfdb726f72f35039c5c102a99bf7759 X-Git-Newrev: f073f3355643587073ce224563f509332043c381 Message-Id: <20221107083852.3D4043858C2C@sourceware.org> Date: Mon, 7 Nov 2022 08:38:52 +0000 (GMT) List-Id: https://gcc.gnu.org/g:f073f3355643587073ce224563f509332043c381 commit r13-3728-gf073f3355643587073ce224563f509332043c381 Author: Piotr Trojanek Date: Fri Aug 12 12:04:35 2022 +0200 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. Diff: --- gcc/ada/sem_res.adb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index 76750708bca..ea9a03b58e6 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);