From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id B8DE6385EC54; Mon, 16 Aug 2021 10:37:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B8DE6385EC54 From: "unlvsur at live dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/101197] __builtin_memmove does not perform constant optimizations Date: Mon, 16 Aug 2021 10:37:46 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: unlvsur at live dot com X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: marxin at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Aug 2021 10:37:46 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D101197 --- Comment #9 from cqwrteur --- (In reply to Tamar Christina from comment #8) > (In reply to Jakub Jelinek from comment #6) > > Shouldn't that be a different PR with details? I mean, this PR is that= we > > should expand shorter memmove inline even if the regions do overlap. >=20 > Sure, I'm still trying to create a minimal representative example (it's C= ++ > and templated) unless just pointing at the github is enough.=20 >=20 > To be clear though, just inlining memmove at all will cover most of the > distance, it's just that you require less registers. inline things like memcpy and memmove will lead to serious binary bloat. The compiler usually picks to emit call to libc's memcpy and memmove that is usually highly optimized with assembly code.=