aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2014-12-05 19:14:37 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2014-12-05 19:14:37 +0100
commitfda3e2851e6f415354eb4045d288d3e91c4aa1ec (patch)
tree9a106d29b7c9ed90c4711508806ab5b0e06b484c
parentd86cb6d5c7952c22053b7199d57e0ede67d0e389 (diff)
downloadgcc-fda3e2851e6f415354eb4045d288d3e91c4aa1ec.zip
gcc-fda3e2851e6f415354eb4045d288d3e91c4aa1ec.tar.gz
gcc-fda3e2851e6f415354eb4045d288d3e91c4aa1ec.tar.bz2
re PR ipa/64192 (r218369 causes some regressions with -m32.)
2014-12-05 Martin Jambor <mjambor@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. From-SVN: r218433
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-prop.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2995e51..9dbd212 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-12-05 Martin Jambor <mjambor@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.
+
2014-12-05 Renlin Li <renlin.li@arm.com>
* config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index eb83ae0..9fab47d 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -1739,10 +1739,11 @@ ipa_compute_jump_functions_for_edge (struct func_body_info *fbi,
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