aboutsummaryrefslogtreecommitdiff
path: root/gcc/real.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-02-26 13:26:11 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2015-02-26 13:26:11 +0100
commitdb847fa8f2cca6139188b8dfa0a7064319b19193 (patch)
tree4cfafb39979c3cd73421161d2411ccb6693f4928 /gcc/real.c
parent948f9b763d00ae77117179edf1980eb40d284326 (diff)
downloadgcc-db847fa8f2cca6139188b8dfa0a7064319b19193.zip
gcc-db847fa8f2cca6139188b8dfa0a7064319b19193.tar.gz
gcc-db847fa8f2cca6139188b8dfa0a7064319b19193.tar.bz2
passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
* passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table. (ipa_write_optimization_summaries): Likewise. * tree-streamer.h: Include data-streamer.h. (streamer_mode_table): Declare extern variable. (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions. * lto-streamer-out.c (lto_output_init_mode_table, lto_write_mode_table): New functions. (produce_asm_for_decls): Call lto_write_mode_table when streaming offloading LTO. * lto-section-in.c (lto_section_name): Add "mode_table" entry. (lto_create_simple_input_block): Add mode_table argument to the lto_input_block constructors. * ipa-prop.c (ipa_prop_read_section, read_replacements_section): Likewise. * data-streamer-in.c (string_for_index): Likewise. * ipa-inline-analysis.c (inline_read_section): Likewise. * ipa-icf.c (sem_item_optimizer::read_section): Likewise. * lto-cgraph.c (input_cgraph_opt_section): Likewise. * lto-streamer-in.c (lto_read_body_or_constructor, lto_input_toplevel_asms): Likewise. (lto_input_mode_table): New function. * tree-streamer-out.c (pack_ts_fixed_cst_value_fields, pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields): Use bp_pack_machine_mode. * real.h (struct real_format): Add name field. * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table. (class lto_input_block): Add mode_table member. (lto_input_block::lto_input_block): Add mode_table_ argument, initialize mode_table. (struct lto_file_decl_data): Add mode_table field. (lto_input_mode_table, lto_output_init_mode_table): New prototypes. * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields, unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode. * tree-streamer.c (streamer_mode_table): New variable. * real.c (ieee_single_format, mips_single_format, motorola_single_format, spu_single_format, ieee_double_format, mips_double_format, motorola_double_format, ieee_extended_motorola_format, ieee_extended_intel_96_format, ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, ibm_extended_format, mips_extended_format, ieee_quad_format, mips_quad_format, vax_f_format, vax_d_format, vax_g_format, decimal_single_format, decimal_double_format, decimal_quad_format, ieee_half_format, arm_half_format, real_internal_format): Add name field. * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. lto/ * lto.c (lto_mode_identity_table): New variable. (lto_read_decls): Add mode_table argument to the lto_input_block constructor. (lto_file_finalize): Initialize mode_table. (lto_init): Initialize lto_mode_identity_table. From-SVN: r221005
Diffstat (limited to 'gcc/real.c')
-rw-r--r--gcc/real.c72
1 files changed, 48 insertions, 24 deletions
diff --git a/gcc/real.c b/gcc/real.c
index 01b169e..1d1d510 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -3031,7 +3031,8 @@ const struct real_format ieee_single_format =
true,
true,
true,
- false
+ false,
+ "ieee_single"
};
const struct real_format mips_single_format =
@@ -3052,7 +3053,8 @@ const struct real_format mips_single_format =
true,
true,
false,
- true
+ true,
+ "mips_single"
};
const struct real_format motorola_single_format =
@@ -3073,7 +3075,8 @@ const struct real_format motorola_single_format =
true,
true,
true,
- true
+ true,
+ "motorola_single"
};
/* SPU Single Precision (Extended-Range Mode) format is the same as IEEE
@@ -3105,7 +3108,8 @@ const struct real_format spu_single_format =
true,
true,
false,
- false
+ false,
+ "spu_single"
};
/* IEEE double-precision format. */
@@ -3314,7 +3318,8 @@ const struct real_format ieee_double_format =
true,
true,
true,
- false
+ false,
+ "ieee_double"
};
const struct real_format mips_double_format =
@@ -3335,7 +3340,8 @@ const struct real_format mips_double_format =
true,
true,
false,
- true
+ true,
+ "mips_double"
};
const struct real_format motorola_double_format =
@@ -3356,7 +3362,8 @@ const struct real_format motorola_double_format =
true,
true,
true,
- true
+ true,
+ "motorola_double"
};
/* IEEE extended real format. This comes in three flavors: Intel's as
@@ -3700,7 +3707,8 @@ const struct real_format ieee_extended_motorola_format =
true,
true,
true,
- true
+ true,
+ "ieee_extended_motorola"
};
const struct real_format ieee_extended_intel_96_format =
@@ -3721,7 +3729,8 @@ const struct real_format ieee_extended_intel_96_format =
true,
true,
true,
- false
+ false,
+ "ieee_extended_intel_96"
};
const struct real_format ieee_extended_intel_128_format =
@@ -3742,7 +3751,8 @@ const struct real_format ieee_extended_intel_128_format =
true,
true,
true,
- false
+ false,
+ "ieee_extended_intel_128"
};
/* The following caters to i386 systems that set the rounding precision
@@ -3765,7 +3775,8 @@ const struct real_format ieee_extended_intel_96_round_53_format =
true,
true,
true,
- false
+ false,
+ "ieee_extended_intel_96_round_53"
};
/* IBM 128-bit extended precision format: a pair of IEEE double precision
@@ -3853,7 +3864,8 @@ const struct real_format ibm_extended_format =
true,
true,
true,
- false
+ false,
+ "ibm_extended"
};
const struct real_format mips_extended_format =
@@ -3874,7 +3886,8 @@ const struct real_format mips_extended_format =
true,
true,
false,
- true
+ true,
+ "mips_extended"
};
@@ -4137,7 +4150,8 @@ const struct real_format ieee_quad_format =
true,
true,
true,
- false
+ false,
+ "ieee_quad"
};
const struct real_format mips_quad_format =
@@ -4158,7 +4172,8 @@ const struct real_format mips_quad_format =
true,
true,
false,
- true
+ true,
+ "mips_quad"
};
/* Descriptions of VAX floating point formats can be found beginning at
@@ -4458,7 +4473,8 @@ const struct real_format vax_f_format =
false,
false,
false,
- false
+ false,
+ "vax_f"
};
const struct real_format vax_d_format =
@@ -4479,7 +4495,8 @@ const struct real_format vax_d_format =
false,
false,
false,
- false
+ false,
+ "vax_d"
};
const struct real_format vax_g_format =
@@ -4500,7 +4517,8 @@ const struct real_format vax_g_format =
false,
false,
false,
- false
+ false,
+ "vax_g"
};
/* Encode real R into a single precision DFP value in BUF. */
@@ -4576,7 +4594,8 @@ const struct real_format decimal_single_format =
true,
true,
true,
- false
+ false,
+ "decimal_single"
};
/* Double precision decimal floating point (IEEE 754). */
@@ -4598,7 +4617,8 @@ const struct real_format decimal_double_format =
true,
true,
true,
- false
+ false,
+ "decimal_double"
};
/* Quad precision decimal floating point (IEEE 754). */
@@ -4620,7 +4640,8 @@ const struct real_format decimal_quad_format =
true,
true,
true,
- false
+ false,
+ "decimal_quad"
};
/* Encode half-precision floats. This routine is used both for the IEEE
@@ -4757,7 +4778,8 @@ const struct real_format ieee_half_format =
true,
true,
true,
- false
+ false,
+ "ieee_half"
};
/* ARM's alternative half-precision format, similar to IEEE but with
@@ -4781,7 +4803,8 @@ const struct real_format arm_half_format =
true,
true,
false,
- false
+ false,
+ "arm_half"
};
/* A synthetic "format" for internal arithmetic. It's the size of the
@@ -4826,7 +4849,8 @@ const struct real_format real_internal_format =
false,
true,
true,
- false
+ false,
+ "real_internal"
};
/* Calculate X raised to the integer exponent N in mode MODE and store