[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