[Bug tree-optimization/46639] [5/6 Regression] Missing optimization due to function splitting and redundant conditionals
ctice at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 8 19:56:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46639
--- Comment #20 from ctice at gcc dot gnu.org ---
Author: ctice
Date: Wed Feb 8 19:55:28 2017
New Revision: 245284
URL: https://gcc.gnu.org/viewcvs?rev=245284&root=gcc&view=rev
Log:
2017-02-08 Caroline Tice <cmtice@google.com>
Fix PR 46639
in gcc:
* passes.def: Add pass_early_vrp; move pass_profile to before new pass.
* tree-pass.h: Add extern decl for make_pass_early_vrp.
* tree-vrp.c: New file global variable, is_early_vrp (boolean).
(extract_range_basic): Add test for is_early_vrp before updating
built-in constants -- don't update during early_vrp pass.
(check_array_ref): Retrn immediately if is_early_vrp is true.
(execute_vrp): Add boolean parameter to indicate early pass or not;
set is_early_pass to value of parameter.
(pass_data_early_vrp): New pass_data struct.
(pass_vrp::execute): Call execute_vrp with false -- not early pass.
(class pass_early_vrp): New gimple_opt_pass class.
(make_pass_early_vrp): New function.
in testsuite:
* testsuite/gcc.dg/tree-prof/lipo/val-prof-5_0.c: xfail test. It is
no longer a correct test with the new pass.
* testsuite/gcc.dg/tree-prof/val-prof-5.c: Ditto.
* testsuite/gcc.dg/tree-ssa/20030709-2.c: Change test to reflect new
(correct) code due to patch changes.
* testsuite/gcc.dg/tree-ssa/20040305-1.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr20702.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21086.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp02.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp07.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp08.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp55.c: Ditto.
* testsuite/gcc.dg/vect/slp-perm-7.c: Ditto.
* testsuite/gcc.dg/fold-compare-2.c: Update to scan correct pass.
* testsuite/gcc.dg/tree-ssa/pr20318.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr20657.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21001.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21090.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21294.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21458.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21559.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr21563.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr22117.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr23744.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr25382.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr37508.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr49039.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr58480.c: Ditto.
* testsuite/gcc.dg/tree-ssa/pr59597.c: Ditto.
* testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2.c: Ditto.
* testsuite/gcc.dg/tree-ssa/ssa-vrp-thread-1.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp01.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp03.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp04.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp06.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp09.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp16.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp17.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp18.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp19.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp20.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp23.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp24.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp25.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp33.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp34.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp46.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp56.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp58.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp67.c: Ditto.
* testsuite/gcc.dg/tree-ssa/vrp87.c: Ditto.
Modified:
branches/google/gcc-4_9-mobile/gcc/passes.def
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/fold-compare-2.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-prof/lipo/val-prof-5_0.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/20040305-1.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr20318.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr20657.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr20702.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21086.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21090.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr22117.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr23744.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr25382.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr37508.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr58480.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/ssa-vrp-thread-1.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp01.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp04.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp16.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp19.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp20.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp23.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp25.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp33.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp34.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp46.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp55.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp56.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp58.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp67.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/tree-ssa/vrp87.c
branches/google/gcc-4_9-mobile/gcc/testsuite/gcc.dg/vect/slp-perm-7.c
branches/google/gcc-4_9-mobile/gcc/tree-pass.h
branches/google/gcc-4_9-mobile/gcc/tree-vrp.c
More information about the Gcc-bugs
mailing list