Commit add5d998 by Martin Jambor Committed by Martin Jambor

ipa-cp.c (ipcp_lats_are_equal): Return true also if the two lattices are…

ipa-cp.c (ipcp_lats_are_equal): Return true also if the two lattices are addresses of CONST_DECLs with the same...

2010-04-09  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
	lattices are addresses of CONST_DECLs with the same initial value.
	(ipcp_print_all_lattices): Print values of CONST_DECLs.
	* ipa-prop.c (ipa_print_node_jump_functions): Likewise.

From-SVN: r158176
parent 43ba743c
2010-04-09 Martin Jambor <mjambor@suse.cz>
* ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
lattices are addresses of CONST_DECLs with the same initial value.
(ipcp_print_all_lattices): Print values of CONST_DECLs.
* ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
Bernd Schmidt <bernd.schmidt@codesourcery.com>
......
......@@ -227,10 +227,14 @@ ipcp_lats_are_equal (struct ipcp_lattice *lat1, struct ipcp_lattice *lat2)
if (lat1->type != lat2->type)
return false;
if (operand_equal_p (lat1->constant, lat2->constant, 0))
return true;
return false;
if (TREE_CODE (lat1->constant) == ADDR_EXPR
&& TREE_CODE (lat2->constant) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (lat1->constant, 0)) == CONST_DECL
&& TREE_CODE (TREE_OPERAND (lat2->constant, 0)) == CONST_DECL)
return operand_equal_p (DECL_INITIAL (TREE_OPERAND (lat1->constant, 0)),
DECL_INITIAL (TREE_OPERAND (lat2->constant, 0)), 0);
else
return operand_equal_p (lat1->constant, lat2->constant, 0);
}
/* Compute Meet arithmetics:
......@@ -386,8 +390,16 @@ ipcp_print_all_lattices (FILE * f)
fprintf (f, " param [%d]: ", i);
if (lat->type == IPA_CONST_VALUE)
{
tree cst = lat->constant;
fprintf (f, "type is CONST ");
print_generic_expr (f, lat->constant, 0);
print_generic_expr (f, cst, 0);
if (TREE_CODE (cst) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (cst, 0)) == CONST_DECL)
{
fprintf (f, " -> ");
print_generic_expr (f, DECL_INITIAL (TREE_OPERAND (cst, 0)),
0);
}
fprintf (f, "\n");
}
else if (lat->type == IPA_TOP)
......
......@@ -291,6 +291,13 @@ ipa_print_node_jump_functions (FILE *f, struct cgraph_node *node)
tree val = jump_func->value.constant;
fprintf (f, "CONST: ");
print_generic_expr (f, val, 0);
if (TREE_CODE (val) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (val, 0)) == CONST_DECL)
{
fprintf (f, " -> ");
print_generic_expr (f, DECL_INITIAL (TREE_OPERAND (val, 0)),
0);
}
fprintf (f, "\n");
}
else if (type == IPA_JF_CONST_MEMBER_PTR)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment