This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH [6/n]: Prepare x32: PR rtl-optimization/47449: Don't propagate hard register non-local goto save area
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, ebotcazou at libertysurf dot fr
- Date: Mon, 04 Jul 2011 20:57:39 +0100
- Subject: Re: PATCH [6/n]: Prepare x32: PR rtl-optimization/47449: Don't propagate hard register non-local goto save area
- References: <20110704052106.GA5131@intel.com>
"H.J. Lu" <hongjiu.lu@intel.com> writes:
> RTL-based forward propagation pass shouldn't propagate hard register.
That's seems a bit draconian. Many fixed hard registers ought to be OK.
E.g. there doesn't seem to be anything wrong with propagating uses of
the stack or frame pointers, subject to the usual availability checks.
To play devil's advocate, an alternative might be to
(a) make local_ref_killed_between_p return true for non-fixed hard
registers when a call or asm comes between the two instructions
(b) make use_killed_between return true for non-fixed hard registers
when the instructions are in different basic blocks
Thoughts?
Richard