This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] FIX_.*_EXPR
On Thursday 12 June 2003 2:27 am, law@redhat.com wrote:
> In message <200306112310.45392.paul@nowt.org>, Paul Brook writes:
> >Unlike C, Fortran allows the user to specify which rounding mode should
> > be used when converyting floating point values to integers.
> >
> >in tree.def there are declarations for FIX_CEIL_EXPR, FIX_FLOOR_EXPR
> > and FIX_ROUND_EXPR. However these don't seem to be implemented by the
> > current RTL expander. It aborts in expr.c when these are used.
>
> So, how is this currently handled? ie, do we implement some kind of
> conversion in the front-end to other nodes? Or do we simply not support
> this Fortran functionality right now?
We don't currently implement this functionality. We've a patch floating
about which implements them in the frontend with a combination of other
nodes. I thought it'd make sense to see if we could push this down into the
language independent bits of the compiler.
> >Is there any chance of getting these implemented? Unfortunately I have
> >approximately zero knowledge of RTL, so wouldn't know where to start.
>
> The "simple" way is to synthesize them from other operations. This is
> what I would tend to prefer. The gimplifier would simplify these down
> to their component operations.
I'll see if I can put together something to handle these in the gimplifier
then.
Paul