This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[tuples][patch] Convert pass_ccp and pass_store_ccp to tuples


This patch converts pass_ccp and pass_store_ccp to use tuples,
and re-enables these passes.

	* tree-ssa-ccp.c (dump_lattice_value, debug_lattice_value):
	Re-enable functions #if'd out.
	(test_default_value, likely_value, surely_varying_stmt_p,
	ccp_initialize, ccp_visit_phi_node, ccp_fold, evaluate_stmt,
	visit_assignment, visit_cond_stmt, ccp_visit_stmt):
	Convert to tuples.
	(fold_gimple_call):  Don't trip over call that simplifies to
	another call, not a constant.
	* tree-ssa-propagate.c (ssa_prop_init): Initialize in-worklist
	flag for phi nodes as well as statements.
	(valid_gimple_expression_p): Add fixme comment to remove this.
	function.  It currently has static uses, but asserts when called.
	(get_lhs, set_lhs): New functions.
	(stmt_makes_single_load, stmt_makes_single_store):
	Convert to tuples
	(replace_phi_args_in): Convert to tuples.  Fix typo in comment.
	* tree-ssa-propagate.h (get_lhs, set_lhs): Declare new functions.
	* gimple.c (gimple_copy_no_def_use): New function.
	* gimple.h (gimple_copy_no_def_use): Declare new function.
	* tree-cfg.c (replace_uses_by): Add comment regarding empty
	operands.
	* passes.c (init_optimization_passes): Enable pass_ccp and
	pass_store_ccp.

Testing revealed a handful of failures that appear to be pass-order
dependencies, or, in one case, a pre-existing issue with mainline.
There is a net increase of 79 passing tests on the C tests and no
regressions elsewhere.

--Bill

Attachment: patch-ccp-03-03.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]