From: ebotcazou Date: Tue, 13 Dec 2011 21:59:39 +0000 (+0000) Subject: * lto-streamer-out.c (write_symbol): Use proper 64-bit host type. X-Git-Tag: upstream/4.9.2~15523 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=949e5786db04eee7fe3feec227d76e6c54d56c3a;p=platform%2Fupstream%2Flinaro-gcc.git * lto-streamer-out.c (write_symbol): Use proper 64-bit host type. * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets. * lto-streamer-in.c (lto_read_body): Likewise. (lto_input_toplevel_asms): Likewise. * lto-section-in.c (lto_create_simple_input_block): Likewise. * ipa-inline-analysis.c (inline_read_section): Likewise. * ipa-prop.c (ipa_prop_read_section): Likewise. * df.h (DF_NOTE): Fix typo in comment. lto/ * lto.h (lto_parse_hex): Delete. * lto.c (lto_read_decls): Use 'int' for offsets. (lto_parse_hex): Make static and return proper 64-bit host type. (lto_resolution_read): Use proper 64-bit host type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182310 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf19ed9..bf8184e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2011-12-13 Eric Botcazou + + * lto-streamer-out.c (write_symbol): Use proper 64-bit host type. + * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets. + * lto-streamer-in.c (lto_read_body): Likewise. + (lto_input_toplevel_asms): Likewise. + * lto-section-in.c (lto_create_simple_input_block): Likewise. + * ipa-inline-analysis.c (inline_read_section): Likewise. + * ipa-prop.c (ipa_prop_read_section): Likewise. + + * df.h (DF_NOTE): Fix typo in comment. + 2011-12-13 Aldy Hernandez * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and @@ -14,7 +26,7 @@ * config/mips/mips-cpus.def: Add Octeon2. * config/mips/mips-tables.opt: Regenerate. * config/mips/mips.md (define_attr "cpu"): Add Octeon2. - * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2 also. + * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2. * config/mips/octeon.md (octeon_arith): Add Octeon2. (octeon_condmove): Likewise. (octeon_load): Rename to .. @@ -58,7 +70,7 @@ 2011-12-13 Aldy Hernandez - PR/51443 + PR middle-end/51443 * trans-mem.c (struct diagnose_tm): Remove saw_unsafe. (diagnose_tm_1): Same. (ipa_tm_execute): Do not test tm_may_enter_irr before we set it. diff --git a/gcc/df.h b/gcc/df.h index 684b06d..f59b525 100644 --- a/gcc/df.h +++ b/gcc/df.h @@ -53,7 +53,7 @@ union df_ref_d; #define DF_RD 3 /* Reaching Defs. */ #define DF_CHAIN 4 /* Def-Use and/or Use-Def Chains. */ #define DF_WORD_LR 5 /* Subreg tracking lr. */ -#define DF_NOTE 6 /* REG_DEF and REG_UNUSED notes. */ +#define DF_NOTE 6 /* REG_DEAD and REG_UNUSED notes. */ #define DF_MD 7 /* Multiple Definitions. */ #define DF_LAST_PROBLEM_PLUS1 (DF_MD + 1) diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 21cbecd..0652e64 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -3019,9 +3019,9 @@ inline_read_section (struct lto_file_decl_data *file_data, const char *data, { const struct lto_function_header *header = (const struct lto_function_header *) data; - const int32_t cfg_offset = sizeof (struct lto_function_header); - const int32_t main_offset = cfg_offset + header->cfg_size; - const int32_t string_offset = main_offset + header->main_size; + const int cfg_offset = sizeof (struct lto_function_header); + const int main_offset = cfg_offset + header->cfg_size; + const int string_offset = main_offset + header->main_size; struct data_in *data_in; struct lto_input_block ib; unsigned int i, count2, j; diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 25ae386..17e3b4f 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -3003,9 +3003,9 @@ ipa_prop_read_section (struct lto_file_decl_data *file_data, const char *data, { const struct lto_function_header *header = (const struct lto_function_header *) data; - const int32_t cfg_offset = sizeof (struct lto_function_header); - const int32_t main_offset = cfg_offset + header->cfg_size; - const int32_t string_offset = main_offset + header->main_size; + const int cfg_offset = sizeof (struct lto_function_header); + const int main_offset = cfg_offset + header->cfg_size; + const int string_offset = main_offset + header->main_size; struct data_in *data_in; struct lto_input_block ib_main; unsigned int i; diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index 44a2049..5e899bc 100644 --- a/gcc/lto-cgraph.c +++ b/gcc/lto-cgraph.c @@ -1689,9 +1689,9 @@ input_cgraph_opt_section (struct lto_file_decl_data *file_data, { const struct lto_function_header *header = (const struct lto_function_header *) data; - const int32_t cfg_offset = sizeof (struct lto_function_header); - const int32_t main_offset = cfg_offset + header->cfg_size; - const int32_t string_offset = main_offset + header->main_size; + const int cfg_offset = sizeof (struct lto_function_header); + const int main_offset = cfg_offset + header->cfg_size; + const int string_offset = main_offset + header->main_size; struct data_in *data_in; struct lto_input_block ib_main; unsigned int i; diff --git a/gcc/lto-section-in.c b/gcc/lto-section-in.c index 6783f4a..fb0c70d 100644 --- a/gcc/lto-section-in.c +++ b/gcc/lto-section-in.c @@ -224,7 +224,7 @@ lto_create_simple_input_block (struct lto_file_decl_data *file_data, = (const struct lto_simple_header *) data; struct lto_input_block* ib_main; - int32_t main_offset = sizeof (struct lto_simple_header); + int main_offset = sizeof (struct lto_simple_header); if (!data) return NULL; diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c index 1847738..f2614cf 100644 --- a/gcc/lto-streamer-in.c +++ b/gcc/lto-streamer-in.c @@ -979,9 +979,9 @@ lto_read_body (struct lto_file_decl_data *file_data, tree fn_decl, { const struct lto_function_header *header; struct data_in *data_in; - int32_t cfg_offset; - int32_t main_offset; - int32_t string_offset; + int cfg_offset; + int main_offset; + int string_offset; struct lto_input_block ib_cfg; struct lto_input_block ib_main; @@ -1172,7 +1172,7 @@ lto_input_toplevel_asms (struct lto_file_decl_data *file_data, int order_base) const char *data = lto_get_section_data (file_data, LTO_section_asm, NULL, &len); const struct lto_asm_header *header = (const struct lto_asm_header *) data; - int32_t string_offset; + int string_offset; struct data_in *data_in; struct lto_input_block ib; tree str; diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 80bf9e9..9593134 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -1290,7 +1290,7 @@ write_symbol (struct streamer_tree_cache_d *cache, enum gcc_plugin_symbol_kind kind; enum gcc_plugin_symbol_visibility visibility; unsigned slot_num; - uint64_t size; + unsigned HOST_WIDEST_INT size; const char *comdat; unsigned char c; @@ -1348,7 +1348,7 @@ write_symbol (struct streamer_tree_cache_d *cache, when symbol has attribute (visibility("hidden")) specified. targetm.binds_local_p check DECL_VISIBILITY_SPECIFIED and gets this right. */ - + if (DECL_EXTERNAL (t) && !targetm.binds_local_p (t)) visibility = GCCPV_DEFAULT; @@ -1370,14 +1370,9 @@ write_symbol (struct streamer_tree_cache_d *cache, } if (kind == GCCPK_COMMON - && DECL_SIZE (t) - && TREE_CODE (DECL_SIZE (t)) == INTEGER_CST) - { - size = (HOST_BITS_PER_WIDE_INT >= 64) - ? (uint64_t) int_size_in_bytes (TREE_TYPE (t)) - : (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE_UNIT (t))) << 32) - | TREE_INT_CST_LOW (DECL_SIZE_UNIT (t)); - } + && DECL_SIZE_UNIT (t) + && TREE_CODE (DECL_SIZE_UNIT (t)) == INTEGER_CST) + size = TREE_INT_CST_LOW (DECL_SIZE_UNIT (t)); else size = 0; diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 2c7d83b..73a9cba 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,10 @@ +2011-12-13 Eric Botcazou + + * lto.h (lto_parse_hex): Delete. + * lto.c (lto_read_decls): Use 'int' for offsets. + (lto_parse_hex): Make static and return proper 64-bit host type. + (lto_resolution_read): Use proper 64-bit host type. + 2011-12-13 Richard Guenther PR lto/48354 diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index accb807..d84dbfd 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -267,7 +267,7 @@ lto_read_in_decl_state (struct data_in *data_in, const uint32_t *data, uint32_t ix; tree decl; uint32_t i, j; - + ix = *data++; decl = streamer_tree_cache_get (data_in->reader_cache, ix); if (TREE_CODE (decl) != FUNCTION_DECL) @@ -886,9 +886,9 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data, VEC(ld_plugin_symbol_resolution_t,heap) *resolutions) { const struct lto_decl_header *header = (const struct lto_decl_header *) data; - const int32_t decl_offset = sizeof (struct lto_decl_header); - const int32_t main_offset = decl_offset + header->decl_state_size; - const int32_t string_offset = main_offset + header->main_size; + const int decl_offset = sizeof (struct lto_decl_header); + const int main_offset = decl_offset + header->decl_state_size; + const int string_offset = main_offset + header->main_size; struct lto_input_block ib_main; struct data_in *data_in; unsigned int i; @@ -939,17 +939,20 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data, if (data_ptr != data_end) internal_error ("bytecode stream: garbage at the end of symbols section"); - + /* Set the current decl state to be the global state. */ decl_data->current_decl_state = decl_data->global_decl_state; lto_data_in_delete (data_in); } -/* strtoll is not portable. */ -int64_t -lto_parse_hex (const char *p) { - uint64_t ret = 0; +/* Custom version of strtoll, which is not portable. */ + +static HOST_WIDEST_INT +lto_parse_hex (const char *p) +{ + HOST_WIDEST_INT ret = 0; + for (; *p != '\0'; ++p) { char c = *p; @@ -965,6 +968,7 @@ lto_parse_hex (const char *p) { internal_error ("could not parse hex number"); ret |= part; } + return ret; } @@ -1000,7 +1004,7 @@ lto_resolution_read (splay_tree file_ids, FILE *resolution, lto_file *file) { int t; char offset_p[17]; - int64_t offset; + HOST_WIDEST_INT offset; t = fscanf (resolution, "@0x%16s", offset_p); if (t != 1) internal_error ("could not parse file offset"); diff --git a/gcc/lto/lto.h b/gcc/lto/lto.h index 43fcca6..8fde159 100644 --- a/gcc/lto/lto.h +++ b/gcc/lto/lto.h @@ -68,6 +68,4 @@ struct lto_section_list struct lto_section_slot *first, *last; }; -int64_t lto_parse_hex (const char *p); - #endif /* LTO_H */