/* 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; }
/* 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; }