This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: inline asm in an inline function
- To: Aldy Hernandez <aldyh at redhat dot com>
- Subject: Re: inline asm in an inline function
- From: Richard Henderson <rth at redhat dot com>
- Date: Fri, 8 Jun 2001 11:04:27 -0700
- Cc: Geoff Keating <geoffk at geoffk dot org>, gcc at gcc dot gnu dot org
- References: <991761446.2753.26.camel.cygnus.gcc@culebra.cygnus.com> <jmn17m6df9.fsf@geoffk.org> <m3pucgpmrm.fsf_-_@culebra.cygnus.com>
On Thu, Jun 07, 2001 at 12:11:57PM +0100, Aldy Hernandez wrote:
> 1. save the clobbers, or whatever follows the set in a parallel
> 2. do the replace_rtx
> 3. parallelize the replaced insn and add the clobbers to the resulting
> insn.
4. Supress this change for GET_CODE (SET_SRC (set)) == ASM_OPERANDS.
We are already using validate_replace_rtx, but that doesn't help
asm_operands, since the clobbers aren't needed for recognition.
As an additional enhancement, if the replacement is of the form
su = regs->array[regno].single_usage;
if (GET_CODE (su) == SET
&& rtx_equal_p (SET_SRC (su), SET_DEST (set)))
Then 'su' can be deleted, 'p' moved down to the same place and
call validate_replace_rtx (SET_DEST (set), SET_DEST (su), p).
r~