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