IPA ICF: compare_operand is split to multiple functions.

gcc/testsuite/ChangeLog:

2014-12-12  Martin Liska  <mliska@suse.cz>

	* gcc.dg/ipa/pr63569.c: New test.

gcc/ChangeLog:

2014-12-12  Martin Liska  <mliska@suse.cz>

	PR ipa/63569
	* gimple-walk.h (get_base_loadstore): Declaration of a new global
	function.
	* gimple-walk.c (get_base_loadstore): Definition of a new global
	function.
	* ipa-icf-gimple.c (func_checker::compare_ssa_name): More complex
	comparison is moved to this function.
	(func_checker::compare_memory_operand): New function is responsible
	for comparison of a given memory operands.
	(func_checker::compare_operand): Global switch is reduced and more
	specific comparison functions are called.
	(func_checker::compare_cst_or_decl): New function compares declarations
	and contant types.
	(func_checker::compare_gimple_call): Memory operands are identified and
	compared with compare_memory_operand.
	(func_checker::compare_gimple_assign): Likewise.
	* ipa-icf-gimple.h: Declaration of new function is added.