[tree-ssa] FIX_.*_EXPR
law@redhat.com
law@redhat.com
Thu Jun 12 03:09:00 GMT 2003
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?
>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.
>It does seem a bit strange having expression nodes and builtin functions
>that do the smae thing.
It happens for a few nodes -- most often you see this for operations which
are typically appear as a function call, but which can be implemented with
hardware instructions on suitable hardware. abs, min/max, trig functions
and the like.
Jeff
More information about the Gcc
mailing list