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: condition DCE of partially dead calls


Andrew Pinski wrote:
On Fri, May 30, 2008 at 12:11 AM, Xinliang David Li <davidxl@google.com> wrote:
2) Enabled only when target float format is IEEE format.

+ /* The limit constants used in the implementation + assume IEEE floating point format. Other formats + can be supported in the future if needed. */ + return (flag_tree_builtin_call_dce != 0 + && TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT);

This check is incorrect really as the float format might be different
from the double format which might be different from the long double
format.

You mean format for each mode may be overridden to be non-ieee format when the TARGET_FLOAT_FORMAT is set to IEEE_FLOAT_FORMAT?

Plus REAL_MODE_FORMAT is what you should be checking as
TARGET_FLOAT_FORMAT just supplies the default but REAL_MODE_FORMAT can
be changed:
  if (TARGET_LONG_DOUBLE_128 && !TARGET_IEEEQUAD)
    REAL_MODE_FORMAT (TFmode) = &ibm_extended_format;

So after this override of quad mode format, the TARGET_FLOAT_FORMAT can still remain to be IEEE_FLOAT_FORMAT instead of some other value?

Basically, you are suggesting check format for individual mode. How
about long double? It is mapped to double-extended mode (XF) on some
targets (x86, ia64), quadMode on some target, while double mode on
others. XF mode may not exist on some targets, how do I check it safely
for all platforms?


Once the spu float format are submitted the spu port will be changed such TARGET_FLOAT_FORMAT is defined to SPU_FLOAT_FORMAT but the double format will be ieee.

I don't see problem with this case, as the TARGET_FLOAT_FORMAT value does get changed to non IEEE.

Thanks,

David



Thanks, Andrew Pinski


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