1. 20 Feb, 2018 1 commit
  2. 03 Jan, 2018 1 commit
  3. 12 Dec, 2017 1 commit
    • re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu) · df80fc53
      	PR tree-optimization/83298
      	PR tree-optimization/83362
      	PR tree-optimization/83383
      	* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
      	push_value_range a public interface.  Add new argument to
      	record_ranges_from_stmt.
      	* gimple-ssa-evrp-analyze.c
      	(evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
      	Update comments.  Handle recording temporary equivalences.
      	* tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
      	new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
      	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
      	* tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
      	gimple-ssa-evrp-analyze.h.
      	(record_temporary_equivalences_from_phis): Add new argument.  When
      	the PHI arg is an SSA_NAME, set the result's range to the range
      	of the PHI arg.
      	(record_temporary_equivalences_from_stmts_at_dest): Record ranges
      	from statements too.
      	(thread_through_normal_block): Accept new argument, evrp_range_analyzer.
      	Pass it down to children as needed.
      	(thread_outgoing_edges): Likewise.
      	(thread_across_edge): Likewise.   Push/pop range state as needed.
      	* tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
      
      	PR tree-optimization/83298
      	PR tree-optimization/83362
      	PR tree-optimization/83383
      	* gcc.c-torture/execute/pr83298.c: New test.
      	* gcc.c-torture/execute/pr83362.c New test.
      	* gcc.c-torture/execute/pr83383.c New test.
      
      From-SVN: r255593
      Jeff Law committed
  4. 04 Dec, 2017 1 commit
    • * gimple-ssa-evrp-analyze.c · d48f6f3f
      	(evrp_range_analyzer::extract_range_from_stmt):  Always use
      	vr_values::update_value_range so preexisting range info is
      	medged with new range info, even if the new range is VR_VARYING.
      
      From-SVN: r255386
      Jeff Law committed
  5. 28 Nov, 2017 2 commits
    • * gimple-ssa-evrp-analyze.c · 5e4a80e8
      	(evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
      	refine ranges if scev_initialized_p returns true.
      	* vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
      
      From-SVN: r255211
      Jeff Law committed
    • re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on… · 4aa458f2
      re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable)
      
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80776
      	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
      	Declare.
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
      	New function.
      	(evrp_range_analyzer::record_ranges_from_incoming_edges):
      	If the incoming edge is an effective fallthru because the other
      	edge only reaches a __builtin_unreachable () then record ranges
      	derived from the controlling condition in SSA info.
      	(evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
      	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
      
      	* gcc.dg/pr80776-1.c: New testcase.
      	* gcc.dg/pr80776-2.c: Likewise.
      
      From-SVN: r255201
      Richard Biener committed
  6. 23 Nov, 2017 1 commit
    • gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Use new… · 3e406d33
      gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Use new method allocate_value_range rather than accessing the...
      
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
      	Use new method allocate_value_range rather than accessing the
      	vrp_value_range_pool data member directly.
      	* tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
      	to use extract_range_from_stmt method to avoid need for
      	extract_range_from_assignment method.
      	(vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
      	method rather than setting values_propgated data member directly.
      	* vr-values.h (class vr_values): Privatize vrp_value_range_pool,
      	and values propagated data members and extract_range_from_assignment
      	method.  Reorder private data members to conform to standards.
      	Add new methods set_lattice_propagation_complete and
      	allocate_value_range.
      
      From-SVN: r255086
      Jeff Law committed
  7. 22 Nov, 2017 1 commit
    • * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer) · a5de02e9
      	Initialize vr_values.
      	(evrp_range_analyzer::try_find_new_range): Call methods attached to
      	vr_values via vr_values class instance rather than delegators.
      	(evrp_range_analyzer::record_ranges_from_phis): Likewise.
      	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
      	(evrp_range_analyzer::push_value_range): Likewise.
      	(evrp_range_analyzer::pop_value_range): Likewise.
      	* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
      	most delegators.  Those remaining are exposed as public interfaces.
      	Make vr_values a pointer and private.
      	(evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
      	vr_values.
      	(evrp_range_analyzer::get_vr_value): New method.
      	* gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
      	(evrp_folder::evrp_folder): New ctor to initialize vr_values.
      	(class evrp_dom_walker): Attach evrp_folder class, initialize
      	it in the ctor.  Remove temporary delegators.
      	(evrp_dom_walker::before_dom_children): Call methods in attached
      	evrp_range_analyzer class via class instance pointer.  Use
      	free value_range_constant_singleton to remove need for
      	op_with_constant_singleton_value delegator method.  Do not
      	create a vrp_prop class instance for every call!  Narrow
      	scope of a couple variables.
      	(evrp_dom_walker::cleanup): Call methods in attached
      	evrp_range_analyzer class via class instance pointer.
      	* vr-values.h (class vr_values): Privatize many methods and
      	data members.
      
      From-SVN: r255074
      Jeff Law committed
  8. 20 Nov, 2017 1 commit
    • Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o. · 74ba745b
      	* Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
      	* gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
      	* gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
      	* gimple-ssa-evrp.c: Remove bits moved into new files.  Include
      	gimple-ssa-evrp-analyze.h.
      
      From-SVN: r254961
      Jeff Law committed