From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2E86F3857034; Fri, 25 Mar 2022 21:14:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2E86F3857034 From: "ehem+gccbugs at m5p dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/105046] [enhancement] Allow inline-assembly clobbers to overlap inputs Date: Fri, 25 Mar 2022 21:14:44 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: inline-asm, ra X-Bugzilla-Severity: enhancement X-Bugzilla-Who: ehem+gccbugs at m5p dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned 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: Fri, 25 Mar 2022 21:14:44 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105046 --- Comment #7 from Elliott M --- Guess I have to go for the visible use: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arc= h/x86/include/asm/xen/hypercall.h Substantial amounts of the _hypercall#() macro definitions could be removed= if 90181 and 105046 were done. The overhead produced by having no way of choo= sing named registers in the asm() construct and not allowing clobbers to overlap inputs is pretty awful. This in turn makes this difficult to read. Additionally, attempting to warn about unused, but set variables becomes difficult. Several types of warnings are difficult or impossible since the source has to lie about what is output versus input.=