Split ranger timestamp into 2 values.

Ranger's cache currently uses a timestamp to determine if a value is out
of date and needs recalculating.  This patch splits the timestmap into
2 timestamps:
  - one for when the value was stored last, and
  - one for when the vlaue was last calculated.
This allows us to differentiate when a value is recalculated and does not
change from one which did change the resulting value.

	PR tree-optimization/125758
	gcc/
	* gimple-range-cache.cc (struct time_stamp): New.
	(set_timestamp): Deleted.
	(set_timestamp_stored): New.
	(set_timestamp_calc): New.
	(set_always_current): Remove a parameter.
	(temporal_value): Remove.
	(temporal_value_stored): New.,
	(temporal_value_calc): New.
	(m_timestamp): Change to vector of struct time_stamp.
	(temporal_cache::temporal_cache): Adjust.
	(temporal_cache::current_p): Use both timestamps.
	(temporal_cache::set_always_current): 0 means always current.
	(temporal_cache::always_current_p): Check for 0.
	(ranger_cache::get_global_range): adjust params.
	(ranger_cache::update_consumers): Set stored timestamp.
	(ranger_cache::set_global_range): Use new timestamps.
1 file changed