Example #1
0
/* Creates a duplicate of the range_info_def at RANGE_INFO for use by
   the SSA name NAME.  */
void
duplicate_ssa_name_range_info (tree name, struct range_info_def *range_info)
{
  struct range_info_def *new_range_info;

  gcc_assert (!POINTER_TYPE_P (TREE_TYPE (name)));
  gcc_assert (!SSA_NAME_RANGE_INFO (name));

  if (!range_info)
    return;

  new_range_info = ggc_alloc_range_info_def ();
  *new_range_info = *range_info;

  SSA_NAME_RANGE_INFO (name) = new_range_info;
}
Example #2
0
/* Creates a duplicate of the range_info_def at RANGE_INFO of type
   RANGE_TYPE for use by the SSA name NAME.  */
void
duplicate_ssa_name_range_info (tree name, enum value_range_type range_type,
			       struct range_info_def *range_info)
{
  struct range_info_def *new_range_info;

  gcc_assert (!POINTER_TYPE_P (TREE_TYPE (name)));
  gcc_assert (!SSA_NAME_RANGE_INFO (name));
  gcc_assert (!SSA_NAME_ANTI_RANGE_P (name));

  if (!range_info)
    return;

  new_range_info = ggc_alloc_range_info_def ();
  *new_range_info = *range_info;

  gcc_assert (range_type == VR_RANGE || range_type == VR_ANTI_RANGE);
  SSA_NAME_ANTI_RANGE_P (name) = (range_type == VR_ANTI_RANGE);
  SSA_NAME_RANGE_INFO (name) = new_range_info;
}