This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Unifying asm and normal insn handling



  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]