[Bug tree-optimization/44485] [4.6 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:1020

2014-02-16 Thread jackie.rosen at hushmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485

Jackie Rosen jackie.rosen at hushmail dot com changed:

   What|Removed |Added

 CC||jackie.rosen at hushmail dot 
com

--- Comment #10 from Jackie Rosen jackie.rosen at hushmail dot com ---
*** Bug 260998 has been marked as a duplicate of this bug. ***
Seen from the domain http://volichat.com
Page where seen: http://volichat.com/adult-chat-rooms
Marked for reference. Resolved as fixed @bugzilla.


[Bug tree-optimization/44485] [4.6 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:1020

2010-08-26 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2010-08-26 16:39 ---
Subject: Bug 44485

Author: jakub
Date: Thu Aug 26 16:39:26 2010
New Revision: 163568

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163568
Log:
PR tree-optimization/44485
* calls.c (flags_from_decl_or_type): For const or pure
noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
together with ECF_CONST resp. ECF_PURE.
* builtins.c (expand_builtin): Use flags_from_decl_or_type
instead of querying flags directly.
* tree-ssa-loop-niter.c (finite_loop_p): Likewise.
* tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.

* gcc.dg/pr44485.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr44485.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/calls.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-dce.c
trunk/gcc/tree-ssa-loop-niter.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485



[Bug tree-optimization/44485] [4.6 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:1020

2010-08-26 Thread jakub at gcc dot gnu dot org


--- Comment #9 from jakub at gcc dot gnu dot org  2010-08-26 16:48 ---
Should be fixed now.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485



[Bug tree-optimization/44485] [4.6 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:1020

2010-08-25 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2010-08-25 16:39 ---
The problem is that func_21 is first marked as
TREE_READONLY/DECL_LOOPING_CONST_OR_PURE_P by local_pure_const, thus there are
no vops on it, but afterwards it is by another local_pure_const made
also TREE_THIS_VOLATILE (i.e. noreturn).
flags_from_decl_or_type doesn't set ECF_CONST for const noreturn functions
though for some reason:
603  /* Process the pure and const attributes.  */
604  if (TREE_READONLY (exp)  ! TREE_THIS_VOLATILE (exp))
605flags |= ECF_CONST;
606  if (DECL_PURE_P (exp))
607flags |= ECF_PURE;
(strangely it does set ECF_PURE for pure noreturn calls), which means when
fixup_noreturn_call calls update_stmt to drop lhs from the call, it adds vops
that were missing before and .MEM needs renaming, but the pass in which
fixup_noreturn_call is called doesn't expect that ssa needs updating.
I wonder what is the reason for that   ! TREE_THIS_VOLATILE (exp) above.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485



[Bug tree-optimization/44485] [4.6 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:1020

2010-08-25 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2010-08-25 17:26 ---
(In reply to comment #6)
 The problem is that func_21 is first marked as
 TREE_READONLY/DECL_LOOPING_CONST_OR_PURE_P by local_pure_const, thus there are
 no vops on it, but afterwards it is by another local_pure_const made
 also TREE_THIS_VOLATILE (i.e. noreturn).
 flags_from_decl_or_type doesn't set ECF_CONST for const noreturn functions
 though for some reason:
 603  /* Process the pure and const attributes.  */
 604  if (TREE_READONLY (exp)  ! TREE_THIS_VOLATILE (exp))
 605flags |= ECF_CONST;
 606  if (DECL_PURE_P (exp))
 607flags |= ECF_PURE;
 (strangely it does set ECF_PURE for pure noreturn calls), which means when
 fixup_noreturn_call calls update_stmt to drop lhs from the call, it adds vops
 that were missing before and .MEM needs renaming, but the pass in which
 fixup_noreturn_call is called doesn't expect that ssa needs updating.
 I wonder what is the reason for that   ! TREE_THIS_VOLATILE (exp) above.

I'd say remove it - it probably was a measure to avoid DCEing the side-effect
or so, before we had proper looping-pure-or-const.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485



[Bug tree-optimization/44485] [4.6 Regression] ICE in get_expr_operands, at tree-ssa-operands.c:1020

2010-07-23 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2010-07-23 12:01 ---
Probably related.  Honza?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |tree-optimization


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485