re PR ipa/65270 (issues with merging memory accesses from different code paths)
2015-03-05 Richard Biener <rguenther@suse.de> PR ipa/65270 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare dependence info. From-SVN: r221204
This commit is contained in:
parent
b3406fa083
commit
58ed456cb6
@ -1,3 +1,9 @@
|
||||
2015-03-05 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR ipa/65270
|
||||
* ipa-icf-gimple.c (func_checker::compare_memory_operand):
|
||||
Compare dependence info.
|
||||
|
||||
2015-03-05 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/65233
|
||||
|
@ -305,6 +305,23 @@ func_checker::compare_memory_operand (tree t1, tree t2)
|
||||
get_object_alignment_1 (b2, &align2, &tem);
|
||||
if (align1 != align2)
|
||||
return return_false_with_msg ("different access alignment");
|
||||
|
||||
/* Similarly we have to compare dependence info where equality
|
||||
tells us we are safe (even some unequal values would be safe
|
||||
but then we have to maintain a map of bases and cliques). */
|
||||
unsigned short clique1 = 0, base1 = 0, clique2 = 0, base2 = 0;
|
||||
if (TREE_CODE (b1) == MEM_REF)
|
||||
{
|
||||
clique1 = MR_DEPENDENCE_CLIQUE (b1);
|
||||
base1 = MR_DEPENDENCE_BASE (b1);
|
||||
}
|
||||
if (TREE_CODE (b2) == MEM_REF)
|
||||
{
|
||||
clique2 = MR_DEPENDENCE_CLIQUE (b2);
|
||||
base2 = MR_DEPENDENCE_BASE (b2);
|
||||
}
|
||||
if (clique1 != clique2 || base1 != base2)
|
||||
return return_false_with_msg ("different dependence info");
|
||||
}
|
||||
|
||||
return compare_operand (t1, t2);
|
||||
|
Loading…
Reference in New Issue
Block a user