diff options
author | Jeff Law <law@redhat.com> | 2017-12-12 15:46:46 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2017-12-12 15:46:46 -0700 |
commit | df80fc5328ebafa5c33a783a32dd819271a49312 (patch) | |
tree | e41c0f11f99141ab8639d901936689c17b09a152 /gcc/gimple-ssa-evrp.c | |
parent | 708eab9b5bfdb5be44253dbac5f58cea5c652c55 (diff) |
re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu)
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
Diffstat (limited to 'gcc/gimple-ssa-evrp.c')
-rw-r--r-- | gcc/gimple-ssa-evrp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c index 609ce38f218..112a43f4e8e 100644 --- a/gcc/gimple-ssa-evrp.c +++ b/gcc/gimple-ssa-evrp.c @@ -134,7 +134,7 @@ evrp_dom_walker::before_dom_children (basic_block bb) print_gimple_stmt (dump_file, stmt, 0); } - evrp_range_analyzer.record_ranges_from_stmt (stmt); + evrp_range_analyzer.record_ranges_from_stmt (stmt, false); if (gcond *cond = dyn_cast <gcond *> (stmt)) { |