public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
@ 2015-08-20 4:42 hs.naveen2u at gmail dot com
2015-08-20 8:54 ` [Bug middle-end/67285] " mpolacek at gcc dot gnu.org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: hs.naveen2u at gmail dot com @ 2015-08-20 4:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
Bug ID: 67285
Summary: ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: hs.naveen2u at gmail dot com
Target Milestone: ---
The following pattern should work as expected:-
+ /* Simplify pow(x,c) / x -> pow(x,c-1). */
+ (simplify
+ (rdiv (POW:s @0 REAL_CST@1) @0)
+ (if (!TREE_OVERFLOW (@1))
+ (POW @0 (minus @1 { build_one_cst (type); }))))
However, it generates the following error:-
internal compiler error: tree check: expected ssa_name, have var_decl in
simplify_builtin_call, at tree-ssa-forwprop.c:1259
Its due to REAL_CST@1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/67285] ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
@ 2015-08-20 8:54 ` mpolacek at gcc dot gnu.org
2015-08-20 9:03 ` hs.naveen2u at gmail dot com
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2015-08-20 8:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2015-08-20
CC| |mpolacek at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Testcase?
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/67285] ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
2015-08-20 8:54 ` [Bug middle-end/67285] " mpolacek at gcc dot gnu.org
@ 2015-08-20 9:03 ` hs.naveen2u at gmail dot com
2015-08-20 11:47 ` rguenth at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: hs.naveen2u at gmail dot com @ 2015-08-20 9:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
--- Comment #2 from hs.naveen2u at gmail dot com ---
Created attachment 36226
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36226&action=edit
Testcase to reproduce the issue
aarch64-thunder-elf-gcc pr67285.c -O2 -funsafe-math-optimizations
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/67285] ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
2015-08-20 8:54 ` [Bug middle-end/67285] " mpolacek at gcc dot gnu.org
2015-08-20 9:03 ` hs.naveen2u at gmail dot com
@ 2015-08-20 11:47 ` rguenth at gcc dot gnu.org
2015-08-20 12:26 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-08-20 11:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Mine.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/67285] ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
` (2 preceding siblings ...)
2015-08-20 11:47 ` rguenth at gcc dot gnu.org
@ 2015-08-20 12:26 ` rguenth at gcc dot gnu.org
2015-08-21 8:06 ` rguenth at gcc dot gnu.org
2015-08-21 8:06 ` rguenth at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-08-20 12:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
There are two issues here - one is side-effects (virtual definition) and one
is dependences (virtual uses). The first one you hit with -fmath-errno,
the second you hit with -frounding-math.
On GENERIC there can be nothing "inbetween" components of the matched
expression
so things are usually fine.
On GIMPLE there can be random statements inbetween the statements composing
the matched expression. Like
_1 = pow (x, 2)
fesetround();
_2 = _1 / x;
we may not move pow () across fesetround () with -frounding-math, thus we
may not generate the expression replacement at the point of the _2 definition.
The actual ICE is about our failure to keep the virtual operand SSA form
up-to-date in fold_stmt. As we generally do not want to do IL walks to
find a suitable VUSE/DEF we can use for that (apart from looking at the
current statement) we generally have to fail doing the expression replacement.
Implementation-wise the easiest is to "fail" when we are trying to generate
a builtin function call which is not CONST. That doesn't avoid all
questionable
transforms but at least should avoid the ICEs due to non-up-to-date virtual
operand form.
There are cases we could relax (like replacing a call with another call),
but let's do that separately.
Note that this will require -fno-math-errno for any late transforms regarding
to math builtins.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/67285] ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
` (3 preceding siblings ...)
2015-08-20 12:26 ` rguenth at gcc dot gnu.org
@ 2015-08-21 8:06 ` rguenth at gcc dot gnu.org
2015-08-21 8:06 ` rguenth at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-08-21 8:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/67285] ICE with (rdiv (POW:s @0 REAL_CST@1) @0)
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
` (4 preceding siblings ...)
2015-08-21 8:06 ` rguenth at gcc dot gnu.org
@ 2015-08-21 8:06 ` rguenth at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-08-21 8:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67285
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Fri Aug 21 08:06:20 2015
New Revision: 227053
URL: https://gcc.gnu.org/viewcvs?rev=227053&root=gcc&view=rev
Log:
2015-08-21 Richard Biener <rguenther@suse.de>
PR middle-end/67285
* gimple-fold.c (replace_stmt_with_simplification): Assert
seq is empty when replacing a call with itself but different
arguments.
* gimple-match-head.c (maybe_push_res_to_seq): When pushing
a call require that it is const.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/gimple-match-head.c
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-08-21 8:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-20 4:42 [Bug middle-end/67285] New: ICE with (rdiv (POW:s @0 REAL_CST@1) @0) hs.naveen2u at gmail dot com
2015-08-20 8:54 ` [Bug middle-end/67285] " mpolacek at gcc dot gnu.org
2015-08-20 9:03 ` hs.naveen2u at gmail dot com
2015-08-20 11:47 ` rguenth at gcc dot gnu.org
2015-08-20 12:26 ` rguenth at gcc dot gnu.org
2015-08-21 8:06 ` rguenth at gcc dot gnu.org
2015-08-21 8:06 ` rguenth at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).