This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Unifying asm and normal insn handling
- To: Bernd Schmidt <crux at pool dot informatik dot rwth-aachen dot de>
- Subject: Re: Unifying asm and normal insn handling
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sat, 17 Oct 1998 02:32:01 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <Pine.GSO.4.02A.9810161348460.527-100000@jennifer.informatik.rwth-
aachen.de>you write:
> I re-checked the existing code now. My memory wasn't completely correct;
> this check is already done for normal insns in find_reloads, but it is
> not done for asm statements (for the very simple reason that no asm
> statement will ever result in a value of n_alternative < 1). Thus, I think
> that my patch did not modify the functionality in find_reloads. Below is
> an updated version with the necessary comments added, but no changes in the
> part that affect find_reloads. If the test is incorrect, we should fix it
> in a separate change.
Thanks for double checking. It may well be wrong, but if it is, then it's
always been wrong and we can deal with it separately.
> BTW, the documentation says that all current machine descriptions use
> register classes. Is the [! REGISTER_CLASSES] code still maintained?
Kind of -- we apply patches to it, but hasn't been built in a long long time.
One could argue that it should go away. I'll listen :-)
> * Makefile.in (insn-extract.o): Fix dependencies.
> * genextract.c (main): Generate includes for insn-config.h and
> recog.h.
> Delete generation of declarations which are now in recog.h.
> * genrecog.c (main): Delete generation of definitions which are
> now in recog.c.
> * local-alloc.c (block_alloc): Use extract_insn and the variables
> it sets up instead of looking up values by insn_code.
> * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
> recog_dup_num): Define here instead of generating the definition in
> genrecog.c.
> (recog_n_operands, recog_n_dups, recog_n_alternatives,
> recog_operand_mode, recog_constraints, recog_operand_address_p):
> New variables.
> (extract_insn): New function.
> * recog.h (extract_insn): Declare function.
> (which_alternative, recog_n_operands, recog_n_dups,
> recog_n_alternatives, recog_operand_mode, recog_constraints,
> recog_operand_address_p): Declare variables.
> * regclass.c (n_occurrences): New static function.
> * reload.c (n_occurrences): Delete function.
> (find_reloads): Use extract_insn.
> * reload.h (n_occurrences): Delete declaration.
Installed.
jeff