This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/83383] [8 Regression] Wrong code with a bunch of type conversion and ternary operators
- From: "law at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 12 Dec 2017 22:47:18 +0000
- Subject: [Bug tree-optimization/83383] [8 Regression] Wrong code with a bunch of type conversion and ternary operators
- Auto-submitted: auto-generated
- References: <bug-83383-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83383
--- Comment #4 from Jeffrey A. Law <law at gcc dot gnu.org> ---
Author: law
Date: Tue Dec 12 22:46:46 2017
New Revision: 255593
URL: https://gcc.gnu.org/viewcvs?rev=255593&root=gcc&view=rev
Log:
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.
Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr83298.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr83362.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr83383.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-ssa-evrp-analyze.c
trunk/gcc/gimple-ssa-evrp-analyze.h
trunk/gcc/gimple-ssa-evrp.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-dom.c
trunk/gcc/tree-ssa-threadedge.c
trunk/gcc/tree-ssa-threadedge.h
trunk/gcc/tree-vrp.c