[ARM,4_7-branch] Backport fix for flto failure with neon intrinsics.

Message ID CACUk7=X3erGHUJS7nLxOnzUXMa0WPi_kSG31bpt8K7jS24Z+AQ@mail.gmail.com
State New
Headers show

Commit Message

Ramana Radhakrishnan May 25, 2012, 9:58 a.m.

We hit an ICE using lto with neon intrinsics that could be traced back
to an invalid call to convert during expand with LTO . Fixed by
backporting Richi's fix from mainline - checking he had no objections
to this on IRC , tested cross on arm-linux-gnueabi with qemu for no

Applied to the FSF 4.7 branch.


2012-05-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

        Backport from mainline
        2012-03-12  Richard Guenther  <rguenther@suse.de>
        * config/arm/arm.c (neon_dereference_pointer): Do not call
        covert during RTL expansion.


Index: gcc/config/arm/arm.c
--- gcc/config/arm/arm.c	(revision 187800)
+++ gcc/config/arm/arm.c	(working copy)
@@ -20604,9 +20604,8 @@ 
   array_type = build_array_type (elem_type, build_index_type (upper_bound));

   /* Dereference EXP using that type.  */
-  exp = convert (build_pointer_type (array_type), exp);
   return fold_build2 (MEM_REF, array_type, exp,
-		      build_int_cst (TREE_TYPE (exp), 0));
+		      build_int_cst (build_pointer_type (array_type), 0));

 /* Expand a Neon builtin.  */