[Bug target/57379] [4.9 Regression]: Segfault in invalidate_any_buried_refs (x=0x0) at ../../gcc-svn/trunk/gcc/gcse.c:3850

2013-06-10 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57379

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.9.0   |4.7.4

--- Comment #2 from Uroš Bizjak  ---
Fixed in mainline and backported to 4.8.1 and 4.7.4 branches.

[Bug target/57379] [4.9 Regression]: Segfault in invalidate_any_buried_refs (x=0x0) at ../../gcc-svn/trunk/gcc/gcse.c:3850

2013-05-23 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57379

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug target/57379] [4.9 Regression]: Segfault in invalidate_any_buried_refs (x=0x0) at ../../gcc-svn/trunk/gcc/gcse.c:3850

2013-05-22 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57379

Uroš Bizjak  changed:

   What|Removed |Added

  Component|rtl-optimization|target

--- Comment #1 from Uroš Bizjak  ---
Target issue, a very strange equal note is attached to the result of TFmode
xfloating compare.

I am testing following patch:

--cut here--
Index: alpha.c
===
--- alpha.c (revision 199214)
+++ alpha.c (working copy)
@@ -3067,12 +3067,8 @@ alpha_emit_xfloating_compare (enum rtx_code *pcode
   operands[1] = op1;
   out = gen_reg_rtx (DImode);

-  /* What's actually returned is -1,0,1, not a proper boolean value,
- so use an EXPR_LIST as with a generic libcall instead of a 
- comparison type expression.  */
-  note = gen_rtx_EXPR_LIST (VOIDmode, op1, NULL_RTX);
-  note = gen_rtx_EXPR_LIST (VOIDmode, op0, note);
-  note = gen_rtx_EXPR_LIST (VOIDmode, func, note);
+  /* What's actually returned is -1,0,1, not a proper boolean value.  */
+  note = gen_rtx_UNSPEC (DImode, gen_rtvec (2, op0, op1), UNSPEC_COMPARE);
   alpha_emit_xfloating_libcall (func, out, operands, 2, note);

   return out;
Index: alpha.md
===
--- alpha.md(revision 199214)
+++ alpha.md(working copy)
@@ -23,6 +23,7 @@
 ;; Uses of UNSPEC in this file:

 (define_c_enum "unspec" [
+  UNSPEC_COMPARE
   UNSPEC_ARG_HOME
   UNSPEC_LDGP1
   UNSPEC_INSXH
--cut here--