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 <cmt...@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