mirror of git://gcc.gnu.org/git/gcc.git
lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference after LTO_null.
2013-06-06 Richard Biener <rguenther@suse.de> * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference after LTO_null. (lto_tag_is_tree_code_p): Adjust. (lto_tag_is_gimple_code_p): Likewise. (lto_gimple_code_to_tag): Likewise. (lto_tag_to_gimple_code): Likewise. (lto_tree_code_to_tag): Likewise. (lto_tag_to_tree_code): Likewise. * data-streamer.h (streamer_write_hwi_in_range): Use uhwi streaming to stream the normalized range. (streamer_read_hwi_in_range): Likewise. From-SVN: r199732
This commit is contained in:
parent
48df3acb54
commit
15d16c8aeb
|
|
@ -1,3 +1,17 @@
|
||||||
|
2013-06-06 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
* lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
|
||||||
|
after LTO_null.
|
||||||
|
(lto_tag_is_tree_code_p): Adjust.
|
||||||
|
(lto_tag_is_gimple_code_p): Likewise.
|
||||||
|
(lto_gimple_code_to_tag): Likewise.
|
||||||
|
(lto_tag_to_gimple_code): Likewise.
|
||||||
|
(lto_tree_code_to_tag): Likewise.
|
||||||
|
(lto_tag_to_tree_code): Likewise.
|
||||||
|
* data-streamer.h (streamer_write_hwi_in_range): Use
|
||||||
|
uhwi streaming to stream the normalized range.
|
||||||
|
(streamer_read_hwi_in_range): Likewise.
|
||||||
|
|
||||||
2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/arm/arm.md (enabled_for_depr_it): New attribute.
|
* config/arm/arm.md (enabled_for_depr_it): New attribute.
|
||||||
|
|
|
||||||
|
|
@ -216,13 +216,7 @@ streamer_write_hwi_in_range (struct lto_output_stream *obs,
|
||||||
&& range < 0x7fffffff);
|
&& range < 0x7fffffff);
|
||||||
|
|
||||||
val -= min;
|
val -= min;
|
||||||
streamer_write_char_stream (obs, val & 255);
|
streamer_write_uhwi_stream (obs, (unsigned HOST_WIDE_INT) val);
|
||||||
if (range >= 0xff)
|
|
||||||
streamer_write_char_stream (obs, (val >> 8) & 255);
|
|
||||||
if (range >= 0xffff)
|
|
||||||
streamer_write_char_stream (obs, (val >> 16) & 255);
|
|
||||||
if (range >= 0xffffff)
|
|
||||||
streamer_write_char_stream (obs, (val >> 24) & 255);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Input VAL into OBS and verify it is in range MIN...MAX that is supposed
|
/* Input VAL into OBS and verify it is in range MIN...MAX that is supposed
|
||||||
|
|
@ -235,17 +229,11 @@ streamer_read_hwi_in_range (struct lto_input_block *ib,
|
||||||
HOST_WIDE_INT max)
|
HOST_WIDE_INT max)
|
||||||
{
|
{
|
||||||
HOST_WIDE_INT range = max - min;
|
HOST_WIDE_INT range = max - min;
|
||||||
HOST_WIDE_INT val = streamer_read_uchar (ib);
|
unsigned HOST_WIDE_INT uval = streamer_read_uhwi (ib);
|
||||||
|
|
||||||
gcc_checking_assert (range > 0 && range < 0x7fffffff);
|
gcc_checking_assert (range > 0 && range < 0x7fffffff);
|
||||||
|
|
||||||
if (range >= 0xff)
|
HOST_WIDE_INT val = (HOST_WIDE_INT) (uval + (unsigned HOST_WIDE_INT) min);
|
||||||
val |= ((HOST_WIDE_INT)streamer_read_uchar (ib)) << 8;
|
|
||||||
if (range >= 0xffff)
|
|
||||||
val |= ((HOST_WIDE_INT)streamer_read_uchar (ib)) << 16;
|
|
||||||
if (range >= 0xffffff)
|
|
||||||
val |= ((HOST_WIDE_INT)streamer_read_uchar (ib)) << 24;
|
|
||||||
val += min;
|
|
||||||
if (val < min || val > max)
|
if (val < min || val > max)
|
||||||
lto_value_range_error (purpose, val, min, max);
|
lto_value_range_error (purpose, val, min, max);
|
||||||
return val;
|
return val;
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,9 @@ enum LTO_tags
|
||||||
{
|
{
|
||||||
LTO_null = 0,
|
LTO_null = 0,
|
||||||
|
|
||||||
|
/* Special for streamer. Reference to previously-streamed node. */
|
||||||
|
LTO_tree_pickle_reference,
|
||||||
|
|
||||||
/* Reserve enough entries to fit all the tree and gimple codes handled
|
/* Reserve enough entries to fit all the tree and gimple codes handled
|
||||||
by the streamer. This guarantees that:
|
by the streamer. This guarantees that:
|
||||||
|
|
||||||
|
|
@ -196,9 +199,6 @@ enum LTO_tags
|
||||||
/* EH try/catch node. */
|
/* EH try/catch node. */
|
||||||
LTO_eh_catch,
|
LTO_eh_catch,
|
||||||
|
|
||||||
/* Special for global streamer. Reference to previously-streamed node. */
|
|
||||||
LTO_tree_pickle_reference,
|
|
||||||
|
|
||||||
/* References to indexable tree nodes. These objects are stored in
|
/* References to indexable tree nodes. These objects are stored in
|
||||||
tables that are written separately from the function bodies that
|
tables that are written separately from the function bodies that
|
||||||
reference them. This way they can be instantiated even when the
|
reference them. This way they can be instantiated even when the
|
||||||
|
|
@ -921,7 +921,7 @@ extern vec<lto_out_decl_state_ptr> lto_function_decl_states;
|
||||||
static inline bool
|
static inline bool
|
||||||
lto_tag_is_tree_code_p (enum LTO_tags tag)
|
lto_tag_is_tree_code_p (enum LTO_tags tag)
|
||||||
{
|
{
|
||||||
return tag > LTO_null && (unsigned) tag <= MAX_TREE_CODES;
|
return tag > LTO_tree_pickle_reference && (unsigned) tag <= MAX_TREE_CODES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -929,8 +929,8 @@ lto_tag_is_tree_code_p (enum LTO_tags tag)
|
||||||
static inline bool
|
static inline bool
|
||||||
lto_tag_is_gimple_code_p (enum LTO_tags tag)
|
lto_tag_is_gimple_code_p (enum LTO_tags tag)
|
||||||
{
|
{
|
||||||
return (unsigned) tag >= NUM_TREE_CODES + 1
|
return (unsigned) tag >= NUM_TREE_CODES + 2
|
||||||
&& (unsigned) tag < 1 + NUM_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE;
|
&& (unsigned) tag < 2 + NUM_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -939,7 +939,7 @@ lto_tag_is_gimple_code_p (enum LTO_tags tag)
|
||||||
static inline enum LTO_tags
|
static inline enum LTO_tags
|
||||||
lto_gimple_code_to_tag (enum gimple_code code)
|
lto_gimple_code_to_tag (enum gimple_code code)
|
||||||
{
|
{
|
||||||
return (enum LTO_tags) ((unsigned) code + NUM_TREE_CODES + 1);
|
return (enum LTO_tags) ((unsigned) code + NUM_TREE_CODES + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -949,7 +949,7 @@ static inline enum gimple_code
|
||||||
lto_tag_to_gimple_code (enum LTO_tags tag)
|
lto_tag_to_gimple_code (enum LTO_tags tag)
|
||||||
{
|
{
|
||||||
gcc_assert (lto_tag_is_gimple_code_p (tag));
|
gcc_assert (lto_tag_is_gimple_code_p (tag));
|
||||||
return (enum gimple_code) ((unsigned) tag - NUM_TREE_CODES - 1);
|
return (enum gimple_code) ((unsigned) tag - NUM_TREE_CODES - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -958,7 +958,7 @@ lto_tag_to_gimple_code (enum LTO_tags tag)
|
||||||
static inline enum LTO_tags
|
static inline enum LTO_tags
|
||||||
lto_tree_code_to_tag (enum tree_code code)
|
lto_tree_code_to_tag (enum tree_code code)
|
||||||
{
|
{
|
||||||
return (enum LTO_tags) ((unsigned) code + 1);
|
return (enum LTO_tags) ((unsigned) code + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -968,7 +968,7 @@ static inline enum tree_code
|
||||||
lto_tag_to_tree_code (enum LTO_tags tag)
|
lto_tag_to_tree_code (enum LTO_tags tag)
|
||||||
{
|
{
|
||||||
gcc_assert (lto_tag_is_tree_code_p (tag));
|
gcc_assert (lto_tag_is_tree_code_p (tag));
|
||||||
return (enum tree_code) ((unsigned) tag - 1);
|
return (enum tree_code) ((unsigned) tag - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check that tag ACTUAL == EXPECTED. */
|
/* Check that tag ACTUAL == EXPECTED. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue