public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev
@ 2005-08-14 23:59 steven at gcc dot gnu dot org
2005-08-15 0:01 ` [Bug tree-optimization/23391] " pinskia at gcc dot gnu dot org
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: steven at gcc dot gnu dot org @ 2005-08-14 23:59 UTC (permalink / raw)
To: gcc-bugs
Test case:
==========================================
void
foo (int N)
{
int C;
double R;
R = 0.0;
do
{
R += 0.001;
C = (int) (R * N);
if (-R * N <= R * N)
{
C++;
}
}
while (C < 0);
return;
}
==========================================
$ ./cc1 -fno-unit-at-a-time -O1 -ffast-math t.c
foo
t.c: In function 'foo':
t.c:3: internal compiler error: tree check: expected real_cst, have
integer_cst in const_binop, at fold-const.c:1512
The test case comes from SPEC twolf. The problem appeared after this patch
was committed: http://gcc.gnu.org/ml/gcc-patches/2005-08/msg00801.html
--
Summary: [4.1 regression] Tree checking failure due to scev
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P2
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: steven at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org,spop at gcc dot gnu dot
org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
@ 2005-08-15 0:01 ` pinskia at gcc dot gnu dot org
2005-08-15 0:06 ` steven at gcc dot gnu dot org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-15 0:01 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-15 00:01 -------
Confirmed, only -O1 is required to reproduce this.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|middle-end |tree-optimization
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2005-08-15 00:01:26
date| |
Target Milestone|--- |4.1.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
2005-08-15 0:01 ` [Bug tree-optimization/23391] " pinskia at gcc dot gnu dot org
@ 2005-08-15 0:06 ` steven at gcc dot gnu dot org
2005-08-15 0:09 ` pinskia at gcc dot gnu dot org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: steven at gcc dot gnu dot org @ 2005-08-15 0:06 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From steven at gcc dot gnu dot org 2005-08-15 00:05 -------
Note that part of the problem is that build_int_cst_type, which scev uses
here, should check that the type given to it is an integral type. That would
have caught the checking failure much earlier. Right now scev tries to use
build_int_cst_type with type==double.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
2005-08-15 0:01 ` [Bug tree-optimization/23391] " pinskia at gcc dot gnu dot org
2005-08-15 0:06 ` steven at gcc dot gnu dot org
@ 2005-08-15 0:09 ` pinskia at gcc dot gnu dot org
2005-08-15 0:34 ` sebastian dot pop at cri dot ensmp dot fr
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-15 0:09 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-15 00:09 -------
This is related to PR 19899 which was fixed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
` (2 preceding siblings ...)
2005-08-15 0:09 ` pinskia at gcc dot gnu dot org
@ 2005-08-15 0:34 ` sebastian dot pop at cri dot ensmp dot fr
2005-08-15 12:33 ` cvs-commit at gcc dot gnu dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: sebastian dot pop at cri dot ensmp dot fr @ 2005-08-15 0:34 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From sebastian dot pop at cri dot ensmp dot fr 2005-08-15 00:34 -------
Subject: Re: [4.1 regression] Tree checking failure due to scev
This patch should fix the problem. There are some more cases that use
build_int_cst instead of build_real. I'll propose a more complete
patch later.
*** tree-scalar-evolution.c.~2.35.~ 2005-08-13 19:06:26.000000000 +0200
--- tree-scalar-evolution.c 2005-08-15 02:36:50.000000000 +0200
***************
*** 1680,1686 ****
opnd10 = TREE_OPERAND (opnd1, 0);
chrec10 = analyze_scalar_evolution (loop, opnd10);
chrec10 = chrec_convert (type, chrec10, at_stmt);
! res = chrec_fold_minus (type, build_int_cst (type, 0), chrec10);
break;
case MULT_EXPR:
--- 1680,1688 ----
opnd10 = TREE_OPERAND (opnd1, 0);
chrec10 = analyze_scalar_evolution (loop, opnd10);
chrec10 = chrec_convert (type, chrec10, at_stmt);
! res = chrec_fold_multiply (type, chrec10, SCALAR_FLOAT_TYPE_P (type)
! ? build_real (type, dconstm1)
! : build_int_cst_type (type, -1));
break;
case MULT_EXPR:
*** tree-chrec.c.~2.23.~ 2005-08-13 19:06:26.000000000 +0200
--- tree-chrec.c 2005-08-15 02:20:51.000000000 +0200
***************
*** 284,291 ****
return build_polynomial_chrec
(CHREC_VARIABLE (op1),
chrec_fold_minus (type, op0, CHREC_LEFT (op1)),
! chrec_fold_multiply (type, CHREC_RIGHT (op1),
! build_int_cst_type (type, -1)));
default:
{
--- 284,292 ----
return build_polynomial_chrec
(CHREC_VARIABLE (op1),
chrec_fold_minus (type, op0, CHREC_LEFT (op1)),
! chrec_fold_multiply (type, CHREC_RIGHT (op1), SCALAR_FLOAT_TYPE_P (type)
! ? build_real (type, dconstm1)
! : build_int_cst_type (type, -1)));
default:
{
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
` (3 preceding siblings ...)
2005-08-15 0:34 ` sebastian dot pop at cri dot ensmp dot fr
@ 2005-08-15 12:33 ` cvs-commit at gcc dot gnu dot org
2005-08-15 12:35 ` sebastian dot pop at cri dot ensmp dot fr
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-08-15 12:33 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-08-15 12:26 -------
Subject: Bug 23391
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: spop@gcc.gnu.org 2005-08-15 12:26:13
Modified files:
gcc : ChangeLog Makefile.in tree-chrec.c
tree-scalar-evolution.c
Added files:
gcc/testsuite/gcc.dg/tree-ssa: pr23391.c
Log message:
PR 23391
* Makefile.in (tree-chrec.o): Depends on real.h.
* tree-chrec.c: Include real.h.
(chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
* tree-scalar-evolution.c (add_to_evolution_1,
interpret_rhs_modify_expr): Ditto.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9732&r2=2.9733
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&r1=1.1535&r2=1.1536
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-chrec.c.diff?cvsroot=gcc&r1=2.23&r2=2.24
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-scalar-evolution.c.diff?cvsroot=gcc&r1=2.35&r2=2.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr23391.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
` (4 preceding siblings ...)
2005-08-15 12:33 ` cvs-commit at gcc dot gnu dot org
@ 2005-08-15 12:35 ` sebastian dot pop at cri dot ensmp dot fr
2005-08-15 13:16 ` sebastian dot pop at cri dot ensmp dot fr
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: sebastian dot pop at cri dot ensmp dot fr @ 2005-08-15 12:35 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From sebastian dot pop at cri dot ensmp dot fr 2005-08-15 12:33 -------
Subject: Re: [4.1 regression] Tree checking failure due to scev
pinskia at gcc dot gnu dot org wrote:
> This is related to PR 19899 which was fixed.
>
Yes, PR is related to PR19899, but same pattern occured in several
places and the fix to PR19899 was not complete. Fixed now.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
` (5 preceding siblings ...)
2005-08-15 12:35 ` sebastian dot pop at cri dot ensmp dot fr
@ 2005-08-15 13:16 ` sebastian dot pop at cri dot ensmp dot fr
2005-08-15 15:08 ` pinskia at gcc dot gnu dot org
2005-08-17 11:23 ` reichelt at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: sebastian dot pop at cri dot ensmp dot fr @ 2005-08-15 13:16 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From sebastian dot pop at cri dot ensmp dot fr 2005-08-15 12:35 -------
Subject: Re: [4.1 regression] Tree checking failure due to scev
Sebastian Pop wrote:
>
> Yes, PR is related to PR19899, but same pattern occured in several
> places and the fix to PR19899 was not complete. Fixed now.
>
We'll probably need this fix for 4.0 branch as well...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
` (6 preceding siblings ...)
2005-08-15 13:16 ` sebastian dot pop at cri dot ensmp dot fr
@ 2005-08-15 15:08 ` pinskia at gcc dot gnu dot org
2005-08-17 11:23 ` reichelt at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-15 15:08 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-15 14:53 -------
Fixed.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
` (7 preceding siblings ...)
2005-08-15 15:08 ` pinskia at gcc dot gnu dot org
@ 2005-08-17 11:23 ` reichelt at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2005-08-17 11:23 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From reichelt at gcc dot gnu dot org 2005-08-17 11:23 -------
*** Bug 23433 has been marked as a duplicate of this bug. ***
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |micis at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-08-17 11:23 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-14 23:59 [Bug middle-end/23391] New: [4.1 regression] Tree checking failure due to scev steven at gcc dot gnu dot org
2005-08-15 0:01 ` [Bug tree-optimization/23391] " pinskia at gcc dot gnu dot org
2005-08-15 0:06 ` steven at gcc dot gnu dot org
2005-08-15 0:09 ` pinskia at gcc dot gnu dot org
2005-08-15 0:34 ` sebastian dot pop at cri dot ensmp dot fr
2005-08-15 12:33 ` cvs-commit at gcc dot gnu dot org
2005-08-15 12:35 ` sebastian dot pop at cri dot ensmp dot fr
2005-08-15 13:16 ` sebastian dot pop at cri dot ensmp dot fr
2005-08-15 15:08 ` pinskia at gcc dot gnu dot org
2005-08-17 11:23 ` reichelt at gcc dot gnu dot 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).