- 20 Feb, 2018 1 commit
-
-
PR middle-end/82123 PR tree-optimization/81592 PR middle-end/79257 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing if not optimizing. (evrp_range_analyzer::record_ranges_from_stmt): Likewise. (evrp_range_analyzer::pop_to_marker): Likewise. From-SVN: r257851
Jeff Law committed
-
- 03 Jan, 2018 1 commit
-
-
From-SVN: r256169
Jakub Jelinek committed
-
- 12 Dec, 2017 1 commit
-
-
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
-
- 04 Dec, 2017 1 commit
-
-
(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
-
- 28 Nov, 2017 2 commits
-
-
(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 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
-
- 23 Nov, 2017 1 commit
-
-
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
-
- 22 Nov, 2017 1 commit
-
-
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
-
- 20 Nov, 2017 1 commit
-
-
* 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
-