Hi, at some point I lost an important division of bit offset by BITS_PER_UNIT in my alignment IPA-CP propagation patch. That lead to a few failures on i686 reported as PR 64192.
This patch adds it together with a slight improvement of the guarding check which I suppose will never trigger but it does ensure the division will never loose information. I consider this change obvious and would really like to commit it before I leave for the weekend, so I will do so after it finishes bootstrapping and testing on i686. It has already passed bootstrap and testing on x86_64-linux. Thanks, Martin 2014-12-05 Martin Jambor <mjam...@suse.cz> PR ipa/64192 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment from bits to bytes after checking they are byte-aligned. Index: src/gcc/ipa-prop.c =================================================================== --- src.orig/gcc/ipa-prop.c +++ src/gcc/ipa-prop.c @@ -1739,10 +1739,11 @@ ipa_compute_jump_functions_for_edge (str unsigned align; if (get_pointer_alignment_1 (arg, &align, &hwi_bitpos) - && align > BITS_PER_UNIT) + && align % BITS_PER_UNIT == 0 + && hwi_bitpos % BITS_PER_UNIT == 0) { jfunc->alignment.known = true; - jfunc->alignment.align = align; + jfunc->alignment.align = align / BITS_PER_UNIT; jfunc->alignment.misalign = hwi_bitpos / BITS_PER_UNIT; } else