This is the mail archive of the
mailing list for the GCC project.
Re: Reload patch v4
- To: Bernd Schmidt <crux at pool dot informatik dot rwth-aachen dot de>
- Subject: Re: Reload patch v4
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 09 Sep 1998 22:14:56 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <Pine.GSO.4.02A.email@example.com>you write:
> Here's one large patch that does the breakup, but nothing else. If I
Thanks. I'm not sure why I didn't suggest this myself since it is the
right thing to do to make the reload changes as a whole easier to read
> made no silly mistake, this patch neither adds nor changes functionality,
> but makes the code somewhat easier to read. It will also make the next
> "real" reload patch somewhat smaller and more readable, as well as making
> the ChangeLog entry a bit more meaningful.
I didn't see anything obvious. I spot checked a couple of things that
looked odd during a quick scan.
> If you think it's a good idea, I'd be happy to go through some other files
> in gcc as well and break up overly large functions. I think it's badly
It is a good idea, and David Miller has been suggested that he'd be
willing to tackle jump.c :-)
However, I'd like to see us concentrate on reaching closure on the
reload patches first. My impression after reviewing them the other
day is that they're actually very close to being ready for integration.
> Another possibility to clean up the code would be to collect
> data that is scattered over many variables into structures.
Yup. We've started doing some of that too. See global_rtl and the
consolidation of various "reg" things into reg_n_info. This is
something we want to continue doing.
> * reload1.c (reload): Break out several subroutines and make some
> variables global.
> (calculate_needs_all_insns): New function, broken out of reload.
> (calculate_needs): Likewise.
> (find_reload_regs): Likewise.
> (find_group): Likewise.
> (find_tworeg_group): Likewise.
> (something_needs_reloads): New global variable, formerly in reload.
> (something_needs_elimination): Likewise.
> (caller_save_spill_class): Likewise.
> (caller_save_group_size): Likewise.
> (max_needs): Likewise.
> (group_size): Likewise.
> (max_groups): Likewise.
> (max_nongroups): Likewise.
> (group_mode): Likewise.
> (max_needs_insn): Likewise.
> (max_groups_insn): Likewise.
> (max_nongroups_insn): Likewise.
> (failure): Likewise.
I added a short comment for find_tworeg_group and installed your patch.