r238594 - in /trunk/gcc: ChangeLog ifcvt.c test...
jgreenhalgh@gcc.gnu.org
jgreenhalgh@gcc.gnu.org
Thu Jul 21 15:40:00 GMT 2016
Author: jgreenhalgh
Date: Thu Jul 21 15:40:24 2016
New Revision: 238594
URL: https://gcc.gnu.org/viewcvs?rev=238594&root=gcc&view=rev
Log:
[Patch 2/2 ifcvt costs] Introduce a new cost model for ifcvt.
gcc/
* ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
(noce_conversion_profitable_p): New.
(noce_try_store_flag_constants): Use it.
(noce_try_addcc): Likewise.
(noce_try_store_flag_mask): Likewise.
(noce_try_cmove): Likewise.
(noce_try_cmove_arith): Likewise.
(bb_valid_for_noce_process_p): Add to the cost parameter rather than
overwriting it.
(noce_convert_multiple_sets): Move cost model to here, from...
(bb_ok_for_noce_convert_multiple_sets) ...here.
(noce_process_if_block): Update calls for above changes.
(noce_find_if_block): Record new noce_if_info parameters.
gcc/testsuite/
* gcc.dg/ifcvt-2.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/ifcvt-3.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/pr68435.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/ifcvt-4.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/ifcvt-5.c: Use parameter to guide if-conversion heuristics.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ifcvt.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/ifcvt-2.c
trunk/gcc/testsuite/gcc.dg/ifcvt-3.c
trunk/gcc/testsuite/gcc.dg/ifcvt-4.c
trunk/gcc/testsuite/gcc.dg/ifcvt-5.c
trunk/gcc/testsuite/gcc.dg/pr68435.c
More information about the Gcc-cvs
mailing list