This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC Patch], PowerPC memory support pre-gcc9, patch #2
On Tue, Mar 20, 2018 at 08:30:57AM -0500, Segher Boessenkool wrote:
> On Thu, Mar 15, 2018 at 01:04:30PM -0400, Michael Meissner wrote:
> > This is patch #2 of my series for improving the PowerPC internal memory
> > support. It assumes patch #1 has been applied.
> >
> > This patch moves the rs6000_move_128bit function from rs6000.c to a new file,
> > rs6000-output.c.
> >
> > The third patch will create a rs6000_move_64bit function and change both 32-bit
> > and 64-bit movdi to call it, instead of having all of the instructions be
> > literals. I will also likely add improvements to setting the reg_addr address
> > masks for offsetable addresses.
> >
> > The fourth patch will like move movdd and movdf to call rs6000_move_64bit as
> > well.
> >
> > I tested this on a little endian power8 system and there were no regressions.
> >
> > 2018-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
> >
> > * config.gcc (powerpc*-*-*): Add rs6000-output.o to extra_objs.
> > * config/rs6000/t-rs6000 (rs6000-output.o): Add build rule.
> > * config/rs6000/rs6000.c (rs6000_output_move_128bit): Move to
> > rs6000-output.c.
>
> I am not happy at all with this new file, and it won't even work as far
> as I see (for multi-alternative define_insn's; splitting the strings to
> a different file than the constraints and attributes is asking for
> trouble, better keep it all together).
>
> Files should bundle together code that conceptually belongs together,
> not some arbitrary split ("these routine return strings that are
> eventually output from the compiler as instructions").
I was eventually planning to move the other functions that split insns and
output the strings there. But I can keep it in rs6000.c if desired. I was
just trying to keep the mechanical changes down, rather than move everything
all at once.
--
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797