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]
Other format: [Raw text]

Re: [PATCH]: Expand finite() as inline i386 asm


On 1/25/07, Richard Guenther <richard.guenther@gmail.com> wrote:

> Regarding the implementation, by representing "finite" optab as a
> conversion optab, existing infrastructure that handles conversion
> optabs could be used with minimum middle-end changes.

A conversion optab has a non-neglible size overhead and in this case
we only have one target mode (SImode), so I'd rather have you use
a regular unoptab.

Tried that ;)


In this case, the optab is generated as:
"finite_optab->handlers[$A].insn_code = CODE_FOR_$(finite$a2$)" and
since it outputs to SImode output operand, the expander should be
defined as "finitesi2" to use generic expansion routines. It looks we
need new expander routine that looks to input operand when deciding
optab mode and outputs to SImode register.

Anyway - according to Jan's comment, this is not optimal approach for
SSE, I'll rethink this a bit...

Thanks,
Uros.


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