From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 9BCD43858D39; Mon, 17 Jul 2023 11:09:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9BCD43858D39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689592147; bh=+0G4s3bpf/2eC1g9lodJaPZ60ejuxqhSWpZlb1MOp3I=; h=From:To:Subject:Date:In-Reply-To:References:From; b=DBCNAoBI0nqHSaHZQY5QrYRI4glDWz9yRNgMc9eQkXsFdPOO65d6JV4iUMsoDCQik 3Ecc5u/PE9p0iOUSKIlD7fIBoB2T1JqrVy/rFiQ13az1hJVZsnG9YBop4QeVwyH/G8 Y8+K9HJ0TOpAYXVPfeiMMwID4+DN0hTCiwCs8YKg= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/110587] [14 regression] 96% pr28071.c compile time regression since r14-2337-g37a231cc7594d1 Date: Mon, 17 Jul 2023 11:09:06 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: compile-time-hog, ra X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D110587 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at gcc dot gnu.org --- Comment #8 from Richard Biener --- Btw, with GCC 13.1 this is already a LRA hog: LRA non-specific : 3.31 ( 73%) 0.01 ( 9%) 3.33 ( = 72%) 3876k ( 3%) TOTAL : 4.53 0.11 4.65=20= =20=20=20=20=20=20 126M GCC 8 and before were worse. On trunk: LRA non-specific : 6.22 ( 69%) 0.02 ( 20%) 6.22 ( = 69%) 8922k ( 6%) LRA hard reg assignment : 1.00 ( 11%) 0.02 ( 20%) 1.02 ( = 11%) 0 ( 0%) TOTAL : 8.97 0.10 9.08=20= =20=20=20=20=20=20 149M the above is with just -O0. Profile: Samples: 37K of event 'cycles:u', Event count (approx.): 49984847870=20=20= =20=20=20=20=20=20=20=20=20=20 Overhead Samples Command Shared Object Symbol=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 51.58% 19087 cc1 cc1 [.] lra_final_code_cha= nge 11.10% 4106 cc1 cc1 [.] next_nondebug_insn 7.61% 2879 cc1 cc1 [.] bitmap_set_bit 6.42% 2425 cc1 cc1 [.] find_hard_regno_fo= r_1 2.28% 842 cc1 cc1 [.] bitmap_bit_p 0.99% 365 cc1 cc1 [.] lra_create_live_ranges_1 it possibly means we now spill more, at -O0 at least. We have a 10% regression in assembly line count between 13 and trunk. The main hog in lra_final_code_change is calls to regno_in_use_p and the loop within that. The BB in this function is _huge_ so the whole process quickly becomes quadratic. Maybe the whole thing should work backwards on a BB and this info collected on-the-fly as some "liveness" problem?=