This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH rs6000] Disable some Cell microcoded instructions
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: "Andrew Pinski" <Andrew_Pinski at playstation dot sony dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, "David Edelsohn" <dje at watson dot ibm dot com>, Trevor_Smigiel <Trevor_Smigiel at playstation dot sony dot com>
- Date: Fri, 19 Sep 2008 11:07:26 +0200
- Subject: Re: [PATCH rs6000] Disable some Cell microcoded instructions
- References: <de8d50360809181458n7fa27e56l4d292fad42dfdc7e@mail.gmail.com>
On Thu, Sep 18, 2008 at 11:58 PM, Andrew Pinski
<Andrew_Pinski@playstation.sony.com> wrote:
> Hi,
> The Cell has some instructions which are microcoded and microcoded
> instructions have a couple of effects on the performance. First there
> is a 7 cycle bubble to fetch the opcodes from the microcoded ROM and
> also the second hardware thread has to be off while these microcoded
> instructions are executing. These two factors together make it
> profitable to turn these microcoded instructions into non microcoded
> instructions. This patch does just do that. It also adds a warning
> if the instruction was emitted was a microcoded instruction.
>
> The only remaining microcoded instruction which is not emitted as a
> non microcoded instruction is the non immediate shift/rotate
> instructions. Even though they could be, I have not done this yet.
> Since that means producing a loop or some jump table method.
Would doing this via a call to libgcc be still profitable over the microcoded
instruction? That would at least save code-size.
Richard.