public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa
@ 2004-01-31 20:59 ak at muc dot de
2004-01-31 21:00 ` [Bug c/13951] " ak at muc dot de
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: ak at muc dot de @ 2004-01-31 20:59 UTC (permalink / raw)
To: gcc-bugs
CC arch/x86_64/kernel/head64.o
arch/x86_64/kernel/head64.c: In function `x86_64_start_kernel':
arch/x86_64/kernel/head64.c:100: internal compiler error: in cselib_record_set,
at cselib.c:1196
Compiler:
Configured with: /averell/src/src/gcc-treessa/gcc/configure
--prefix=/home/ak/gcc/gcc-treessa-20040131 --disable-checking
--enable-languages=c,c++
Thread model: posix
gcc version 3.5-tree-ssa 20040131 (merged 20040126)
--
Summary: cselib ICE during x86-64 kernel compile with treessa
Product: gcc
Version: tree-ssa
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ak at muc dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: x86_64-linux
GCC target triplet: x86_64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c/13951] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
@ 2004-01-31 21:00 ` ak at muc dot de
2004-01-31 21:06 ` [Bug optimization/13951] [tree-ssa] " pinskia at gcc dot gnu dot org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: ak at muc dot de @ 2004-01-31 21:00 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From ak at muc dot de 2004-01-31 21:00 -------
Created an attachment (id=5631)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5631&action=view)
preprocessed file causing the ICE
Preprocessed file straight from the kernel source causing the ICE
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
2004-01-31 21:00 ` [Bug c/13951] " ak at muc dot de
@ 2004-01-31 21:06 ` pinskia at gcc dot gnu dot org
2004-02-04 3:34 ` rth at gcc dot gnu dot org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-31 21:06 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Component|c |optimization
Keywords| |ice-on-valid-code, RTL
Known to fail| |tree-ssa
Known to work| |3.5.0
Summary|cselib ICE during x86-64 |[tree-ssa] cselib ICE during
|kernel compile with treessa |x86-64 kernel compile with
| |treessa
Target Milestone|--- |tree-ssa
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
2004-01-31 21:00 ` [Bug c/13951] " ak at muc dot de
2004-01-31 21:06 ` [Bug optimization/13951] [tree-ssa] " pinskia at gcc dot gnu dot org
@ 2004-02-04 3:34 ` rth at gcc dot gnu dot org
2004-02-04 12:11 ` jh at suse dot cz
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rth at gcc dot gnu dot org @ 2004-02-04 3:34 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From rth at gcc dot gnu dot org 2004-02-04 03:34 -------
Jan, I assume this is some bit of cselib changes present on mainline that
didn't make it to the branch. Would you take care of it please?
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |jh at suse dot cz
|dot org |
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2004-02-04 03:34:23
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (2 preceding siblings ...)
2004-02-04 3:34 ` rth at gcc dot gnu dot org
@ 2004-02-04 12:11 ` jh at suse dot cz
2004-02-04 17:11 ` jh at suse dot cz
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jh at suse dot cz @ 2004-02-04 12:11 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jh at suse dot cz 2004-02-04 12:11 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
>
> ------- Additional Comments From rth at gcc dot gnu dot org 2004-02-04 03:34 -------
> Jan, I assume this is some bit of cselib changes present on mainline that
> didn't make it to the branch. Would you take care of it please?
I think it is unrelated - nothing of my recent changes shall affect
something else than schedule-ebbs used only by IA-64, but I plan to look
into it soon (once I resolve the remaining cgraphunit merge issues)
>
> --
> What |Removed |Added
> ----------------------------------------------------------------------------
> AssignedTo|unassigned at gcc dot gnu |jh at suse dot cz
> |dot org |
> Status|UNCONFIRMED |ASSIGNED
> Ever Confirmed| |1
> Last reconfirmed|0000-00-00 00:00:00 |2004-02-04 03:34:23
> date| |
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
>
> ------- You are receiving this mail because: -------
> You are the assignee for the bug, or are watching the assignee.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (3 preceding siblings ...)
2004-02-04 12:11 ` jh at suse dot cz
@ 2004-02-04 17:11 ` jh at suse dot cz
2004-02-04 23:57 ` jh at suse dot cz
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jh at suse dot cz @ 2004-02-04 17:11 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jh at suse dot cz 2004-02-04 17:11 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
>
> ------- Additional Comments From jh at suse dot cz 2004-02-04 12:11 -------
> Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
>
> >
> > ------- Additional Comments From rth at gcc dot gnu dot org 2004-02-04 03:34 -------
> > Jan, I assume this is some bit of cselib changes present on mainline that
> > didn't make it to the branch. Would you take care of it please?
>
> I think it is unrelated - nothing of my recent changes shall affect
> something else than schedule-ebbs used only by IA-64, but I plan to look
> into it soon (once I resolve the remaining cgraphunit merge issues)
The problem is:
(insn 154 153 155 13 (parallel [
(set (reg/v:SI 74 [ eax ])
(asm_operands:SI ("cpuid") ("=a") 0 [
(reg:SI 108)
]
[
(asm_input:SI ("0"))
] ("include/asm/msr.h") 72))
(set (reg/v:SI 73 [ dummy ])
(asm_operands:SI ("cpuid") ("=b") 1 [
(reg:SI 108)
]
[
(asm_input:SI ("0"))
] ("include/asm/msr.h") 72))
(set (reg/v:SI 73 [ dummy ])
(asm_operands:SI ("cpuid") ("=c") 2 [
(reg:SI 108)
]
[
(asm_input:SI ("0"))
] ("include/asm/msr.h") 72))
(set (reg:SI 107)
(asm_operands:SI ("cpuid") ("=d") 3 [
(reg:SI 108)
]
[
(asm_input:SI ("0"))
] ("include/asm/msr.h") 72))
(clobber (reg:QI 19 dirflag))
(clobber (reg:QI 18 fpsr))
(clobber (reg:QI 17 flags))
]) -1 (nil)
(nil))
I think CSELIB ICE because dummy is set twice. I think it makes sense
to do so, but I am unsure where to avoid it. I will look into it
tomorrow.
Honza
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (4 preceding siblings ...)
2004-02-04 17:11 ` jh at suse dot cz
@ 2004-02-04 23:57 ` jh at suse dot cz
2004-02-05 5:18 ` rth at redhat dot com
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jh at suse dot cz @ 2004-02-04 23:57 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jh at suse dot cz 2004-02-04 23:56 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
> >
> > ------- Additional Comments From jh at suse dot cz 2004-02-04 12:11 -------
> > Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
> >
> > >
> > > ------- Additional Comments From rth at gcc dot gnu dot org 2004-02-04 03:34 -------
> > > Jan, I assume this is some bit of cselib changes present on mainline that
> > > didn't make it to the branch. Would you take care of it please?
> >
> > I think it is unrelated - nothing of my recent changes shall affect
> > something else than schedule-ebbs used only by IA-64, but I plan to look
> > into it soon (once I resolve the remaining cgraphunit merge issues)
> The problem is:
>
> (insn 154 153 155 13 (parallel [
> (set (reg/v:SI 74 [ eax ])
> (asm_operands:SI ("cpuid") ("=a") 0 [
> (reg:SI 108)
> ]
> [
> (asm_input:SI ("0"))
> ] ("include/asm/msr.h") 72))
> (set (reg/v:SI 73 [ dummy ])
> (asm_operands:SI ("cpuid") ("=b") 1 [
> (reg:SI 108)
> ]
> [
> (asm_input:SI ("0"))
> ] ("include/asm/msr.h") 72))
> (set (reg/v:SI 73 [ dummy ])
> (asm_operands:SI ("cpuid") ("=c") 2 [
> (reg:SI 108)
> ]
> [
> (asm_input:SI ("0"))
> ] ("include/asm/msr.h") 72))
> (set (reg:SI 107)
> (asm_operands:SI ("cpuid") ("=d") 3 [
> (reg:SI 108)
> ]
> [
> (asm_input:SI ("0"))
> ] ("include/asm/msr.h") 72))
> (clobber (reg:QI 19 dirflag))
> (clobber (reg:QI 18 fpsr))
> (clobber (reg:QI 17 flags))
> ]) -1 (nil)
> (nil))
>
> I think CSELIB ICE because dummy is set twice. I think it makes sense
> to do so, but I am unsure where to avoid it. I will look into it
> tomorrow.
Hi,
I am testing the attached patch.
Honza
Index: stmt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stmt.c,v
retrieving revision 1.267.2.45
diff -c -3 -p -r1.267.2.45 stmt.c
*** stmt.c 30 Jan 2004 13:14:16 -0000 1.267.2.45
--- stmt.c 4 Feb 2004 23:55:36 -0000
*************** expand_asm_operands (tree string, tree o
*** 1671,1676 ****
--- 1671,1694 ----
}
output_rtx[i] = op;
+ if ((REG_P (output_rtx[i]) || GET_CODE (output_rtx[i]) == SUBREG)
+ && !real_output_rtx[i])
+ {
+ int y;
+ rtx reg = output_rtx[i];
+ if (GET_CODE (reg) == SUBREG)
+ reg = SUBREG_REG (reg);
+ for (y = 0; y < i; y++)
+ if ((REG_P (output_rtx[y]) || GET_CODE (output_rtx[y]) == SUBREG)
+ && reg_overlap_mentioned_p (reg, output_rtx[y]))
+ break;
+ if (y != i)
+ {
+ real_output_rtx[i] = output_rtx[i];
+ output_rtx[i] = gen_reg_rtx (GET_MODE (op));
+ }
+ }
+
generating_concat_p = old_generating_concat_p;
if (is_inout)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (5 preceding siblings ...)
2004-02-04 23:57 ` jh at suse dot cz
@ 2004-02-05 5:18 ` rth at redhat dot com
2004-02-05 8:36 ` jh at suse dot cz
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rth at redhat dot com @ 2004-02-05 5:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From rth at redhat dot com 2004-02-05 05:18 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
On Thu, Feb 05, 2004 at 12:56:58AM +0100, Jan Hubicka wrote:
> > I think CSELIB ICE because dummy is set twice. I think it makes sense
> > to do so...
Why? I think an ICE because of such isn't a good idea.
r~
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (6 preceding siblings ...)
2004-02-05 5:18 ` rth at redhat dot com
@ 2004-02-05 8:36 ` jh at suse dot cz
2004-02-05 9:48 ` rth at redhat dot com
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jh at suse dot cz @ 2004-02-05 8:36 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jh at suse dot cz 2004-02-05 08:35 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
> On Thu, Feb 05, 2004 at 12:56:58AM +0100, Jan Hubicka wrote:
> > > I think CSELIB ICE because dummy is set twice. I think it makes sense
> > > to do so...
>
> Why? I think an ICE because of such isn't a good idea.
We care to not have undefined insns of this kind.
One never knows what of the sets will be winner and thus never knows the
effect of instructions. Various optimizers may miss the detail and
choose one of the sets to be "the right one"
To deal with this correctly, we would have to teach cselib to track down
such a multi sets and invalidate result of the register immediately
after processing.
Not terribly dificult, but anoying.
Honza
>
>
> r~
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (7 preceding siblings ...)
2004-02-05 8:36 ` jh at suse dot cz
@ 2004-02-05 9:48 ` rth at redhat dot com
2004-02-05 10:18 ` jh at suse dot cz
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rth at redhat dot com @ 2004-02-05 9:48 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From rth at redhat dot com 2004-02-05 09:47 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
On Thu, Feb 05, 2004 at 09:35:31AM +0100, Jan Hubicka wrote:
> To deal with this correctly, we would have to teach cselib to track down
> such a multi sets and invalidate result of the register immediately
> after processing.
No we don't. We can treat this just as CLOBBER.
r~
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (8 preceding siblings ...)
2004-02-05 9:48 ` rth at redhat dot com
@ 2004-02-05 10:18 ` jh at suse dot cz
2004-02-08 6:53 ` pinskia at gcc dot gnu dot org
2004-03-03 7:32 ` rth at gcc dot gnu dot org
11 siblings, 0 replies; 13+ messages in thread
From: jh at suse dot cz @ 2004-02-05 10:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jh at suse dot cz 2004-02-05 10:18 -------
Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
>
> ------- Additional Comments From rth at redhat dot com 2004-02-05 09:47 -------
> Subject: Re: [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
>
> On Thu, Feb 05, 2004 at 09:35:31AM +0100, Jan Hubicka wrote:
> > To deal with this correctly, we would have to teach cselib to track down
> > such a multi sets and invalidate result of the register immediately
> > after processing.
>
> No we don't. We can treat this just as CLOBBER.
I don't quite follow it. I see that in this case the asm statement is
doing ugly way of clobber, so first question is whether we want to allow
asm statements as a special case, or we want to allow generic
instructions to have mutiple sets with the same destination?
You mean that while processing the second set, I shall notice that it
already has recorded equivalence with the first set, invalidate it and
record equivalence with somple placeholder RTX?
(the problem is that if I only invalidate it, the third set to same
destination won't notice it and record new equivalence, that is
precisely what is unsafe to do)
I am still concerned about the fact that many other places looks for
sets and blindly trust that if register is an destination of the set, it
will contain the value, so I don't really like such instructions lurking
around especially when they are easy to avoid.
Honza
>
>
> r~
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
>
> ------- You are receiving this mail because: -------
> You are the assignee for the bug, or are watching the assignee.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (9 preceding siblings ...)
2004-02-05 10:18 ` jh at suse dot cz
@ 2004-02-08 6:53 ` pinskia at gcc dot gnu dot org
2004-03-03 7:32 ` rth at gcc dot gnu dot org
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-08 6:53 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |critical
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug optimization/13951] [tree-ssa] cselib ICE during x86-64 kernel compile with treessa
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
` (10 preceding siblings ...)
2004-02-08 6:53 ` pinskia at gcc dot gnu dot org
@ 2004-03-03 7:32 ` rth at gcc dot gnu dot org
11 siblings, 0 replies; 13+ messages in thread
From: rth at gcc dot gnu dot org @ 2004-03-03 7:32 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From rth at gcc dot gnu dot org 2004-03-03 07:32 -------
*** This bug has been marked as a duplicate of 13862 ***
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |DUPLICATE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13951
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2004-03-03 7:32 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-31 20:59 [Bug c/13951] New: cselib ICE during x86-64 kernel compile with treessa ak at muc dot de
2004-01-31 21:00 ` [Bug c/13951] " ak at muc dot de
2004-01-31 21:06 ` [Bug optimization/13951] [tree-ssa] " pinskia at gcc dot gnu dot org
2004-02-04 3:34 ` rth at gcc dot gnu dot org
2004-02-04 12:11 ` jh at suse dot cz
2004-02-04 17:11 ` jh at suse dot cz
2004-02-04 23:57 ` jh at suse dot cz
2004-02-05 5:18 ` rth at redhat dot com
2004-02-05 8:36 ` jh at suse dot cz
2004-02-05 9:48 ` rth at redhat dot com
2004-02-05 10:18 ` jh at suse dot cz
2004-02-08 6:53 ` pinskia at gcc dot gnu dot org
2004-03-03 7:32 ` rth 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).