public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128
@ 2006-01-31 20:46 bergner at vnet dot ibm dot com
2006-01-31 20:47 ` [Bug middle-end/26049] " bergner at vnet dot ibm dot com
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: bergner at vnet dot ibm dot com @ 2006-01-31 20:46 UTC (permalink / raw)
To: gcc-bugs
I get an ICE compiling the following test case using a 3.4 compiler (checked
out and built today [2006/01/31]).
bergner@vervain:~> cat _IO_vfprintf_internal.i
union printf_arg {
long double pa_long_double;
const char *pa_string;
const int *pa_wstring;
void *pa_pointer;
};
struct _IO_FILE {
int _flags2;
};
void
_IO_vfprintf_internal(struct _IO_FILE *s, const char *format, __builtin_va_list
ap)
{
const char *f;
__builtin_va_list ap_save;
long unsigned int nargs = 0;
int *args_type;
union printf_arg *args_value;
long unsigned int cnt;
__builtin_va_copy(ap_save, ap);
for (f = format; *f; f++) {
nargs += 1;
}
args_value = __builtin_alloca(nargs * sizeof (union printf_arg));
for (cnt = 0; cnt < nargs; ++cnt)
switch (args_type[cnt]) {
case 0:
args_value[cnt].pa_string =
__builtin_va_arg(ap_save, const char *);
break;
case 1:
args_value[cnt].pa_wstring =
__builtin_va_arg(ap_save, const int *);
break;
case 2:
args_value[cnt].pa_pointer =
__builtin_va_arg(ap_save, void *);
break;
default:
if ((args_type[cnt] & (1 << 11)) != 0)
args_value[cnt].pa_pointer =
__builtin_va_arg(ap_save, void *);
else
args_value[cnt].pa_long_double = 0.0;
break;
case -1:
((void) ((s->_flags2 & 4) ? 0
: (__assert_fail ("s", "v", 1743, __PRETTY_FUNCTION__), 0)));
__libc_fatal ("*** invalid %N$ use detected ***\n");
}
}
bergner@vervain:~> ./gcc/gcc-20060131-3_4-biarch/bin/gcc -O1 -c -m64
-mlong-double-128 _IO_vfprintf_internal.i
_IO_vfprintf_internal.i: In function `_IO_vfprintf_internal':
_IO_vfprintf_internal.i:57: error: insn does not satisfy its constraints:
(insn 280 157 159 15 _IO_vfprintf_internal.i:50 (set (mem/s/j:TF (plus:DI
(reg:DI 0 0 [194])
(reg/v/f:DI 29 29 [orig:126 args_value ] [126])) [0
<variable>.pa_long_double+0 S16 A128])
(reg:TF 32 0)) 312 {*movtf_internal} (nil)
(nil))
_IO_vfprintf_internal.i:57: internal compiler error: in
reload_cse_simplify_operands, at postreload.c:391
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
bergner@vervain:~> ./gcc/gcc-20060131-3_4-biarch/bin/gcc -v
Reading specs from
/home/bergner/gcc/gcc-20060131-3_4-biarch/lib/gcc/powerpc-linux/3.4.6/specs
Configured with: /home/bergner/gcc/gcc-20060131-3_4/configure
--target=powerpc-linux --host=powerpc-linux --build=powerpc-linux
--enable-targets=powerpc64-linux --enable-threads=posix --enable-shared
--enable-__cxa_atexit --enable-languages=c,c++ --disable-checking
--prefix=/home/bergner/gcc/gcc-20060131-3_4-biarch
Thread model: posix
gcc version 3.4.6 20060131 (prerelease)
--
Summary: ICE compiling glibc part using -O1 -m64 -mlong-double-
128
Product: gcc
Version: 3.4.6
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bergner at vnet dot ibm dot com
GCC build triplet: powerpc-linux
GCC host triplet: powerpc-linux
GCC target triplet: powerpc-linux --enable-targets=powerpc64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
@ 2006-01-31 20:47 ` bergner at vnet dot ibm dot com
2006-01-31 20:53 ` pinskia at gcc dot gnu dot org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: bergner at vnet dot ibm dot com @ 2006-01-31 20:47 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from bergner at vnet dot ibm dot com 2006-01-31 20:47 -------
Created an attachment (id=10767)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10767&action=view)
Test case as an attachment.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
2006-01-31 20:47 ` [Bug middle-end/26049] " bergner at vnet dot ibm dot com
@ 2006-01-31 20:53 ` pinskia at gcc dot gnu dot org
2006-01-31 21:07 ` pinskia at gcc dot gnu dot org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-01-31 20:53 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from pinskia at gcc dot gnu dot org 2006-01-31 20:53 -------
This is related to (or really a dup of) PR 14010.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
2006-01-31 20:47 ` [Bug middle-end/26049] " bergner at vnet dot ibm dot com
2006-01-31 20:53 ` pinskia at gcc dot gnu dot org
@ 2006-01-31 21:07 ` pinskia at gcc dot gnu dot org
2006-01-31 21:31 ` dje at gcc dot gnu dot org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-01-31 21:07 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from pinskia at gcc dot gnu dot org 2006-01-31 21:07 -------
Hmm, (reg:DI 0 0 [194]) is what is causing the issue as far as I can tell.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
` (2 preceding siblings ...)
2006-01-31 21:07 ` pinskia at gcc dot gnu dot org
@ 2006-01-31 21:31 ` dje at gcc dot gnu dot org
2006-01-31 21:57 ` munroesj at us dot ibm dot com
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: dje at gcc dot gnu dot org @ 2006-01-31 21:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from dje at gcc dot gnu dot org 2006-01-31 21:30 -------
This was fixed by adding the 'Y' constraint to movtf_internal. One would need
to add the constraint and modify the word_offset_memref_operand() function in
rs6000.c on the GCC-3.4 branch. I am hesitant to start along that path this
late in the GCC 3.4 release cycle because changing the predicate could be much
more destabilizing. We can backport that to a distro if needed.
GCC 3.4 is not intended to build GLIBC with -mlong-double-128. GLIBC now
depends on GCC 4.1 if that option is used.
This sounds like a classic "doctor it hurts when I do this." "Then don't do
that."
--
dje at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dje at gcc dot gnu dot org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2006-01-31 21:30:53
date| |
Target Milestone|4.0.0 |---
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
` (3 preceding siblings ...)
2006-01-31 21:31 ` dje at gcc dot gnu dot org
@ 2006-01-31 21:57 ` munroesj at us dot ibm dot com
2006-01-31 22:01 ` [Bug middle-end/26049] [3.4 only] " pinskia at gcc dot gnu dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: munroesj at us dot ibm dot com @ 2006-01-31 21:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from munroesj at us dot ibm dot com 2006-01-31 21:57 -------
I understand for ppc32 but should we require gcc-4.1 -m64 for glibc (which had
worked in the past)?
--
munroesj at us dot ibm dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |munroesj at us dot ibm dot
| |com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] [3.4 only] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
` (4 preceding siblings ...)
2006-01-31 21:57 ` munroesj at us dot ibm dot com
@ 2006-01-31 22:01 ` pinskia at gcc dot gnu dot org
2006-01-31 23:26 ` dje at gcc dot gnu dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-01-31 22:01 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from pinskia at gcc dot gnu dot org 2006-01-31 22:01 -------
This is not really a regression, and I should note that GCC's policy if this is
not a regression, it does not get fixed on the release branches. I should
note that even the requiring of 4.1 for ppc32 is pushing GCC to the point where
it is going to break (in that it goes against all the current policies of GCC).
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-valid-code
Known to fail| |3.4.5 3.4.6
Known to work| |4.0.0 4.1.0 4.0.2
Summary|ICE compiling glibc part |[3.4 only] ICE compiling
|using -O1 -m64 -mlong- |glibc part using -O1 -m64 -
|double-128 |mlong-double-128
Target Milestone|--- |3.4.6
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] [3.4 only] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
` (5 preceding siblings ...)
2006-01-31 22:01 ` [Bug middle-end/26049] [3.4 only] " pinskia at gcc dot gnu dot org
@ 2006-01-31 23:26 ` dje at gcc dot gnu dot org
2006-02-14 6:11 ` amodra at bigpond dot net dot au
2006-03-01 5:12 ` gdr at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: dje at gcc dot gnu dot org @ 2006-01-31 23:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from dje at gcc dot gnu dot org 2006-01-31 23:26 -------
> I understand for ppc32 but should we require gcc-4.1 -m64 for glibc (which had
> worked in the past)?
We are not requiring gcc-4.1 for -m64, gcc-4.0 -m64 -mlong-double-128 includes
the fix. If gcc-4.0 did not work, that would be the place to fix it.
IBM extended format long double was a new feature in gcc-3.4 and would be fixed
if gcc-3.4 were the current release, but it is not. At this point in the
release cycle, only fixes to regressions relative to previous releases are
applied.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] [3.4 only] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
` (6 preceding siblings ...)
2006-01-31 23:26 ` dje at gcc dot gnu dot org
@ 2006-02-14 6:11 ` amodra at bigpond dot net dot au
2006-03-01 5:12 ` gdr at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: amodra at bigpond dot net dot au @ 2006-02-14 6:11 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from amodra at bigpond dot net dot au 2006-02-14 06:11 -------
I think David indentified the wrong patch in comment #4. My guess is that rev
83504, rs6000_eliminate_indexed_memrefs, (and followup rev 92567) is the real
fix for this problem.
--
amodra at bigpond dot net dot au changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |amodra at bigpond dot net
| |dot au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/26049] [3.4 only] ICE compiling glibc part using -O1 -m64 -mlong-double-128
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
` (7 preceding siblings ...)
2006-02-14 6:11 ` amodra at bigpond dot net dot au
@ 2006-03-01 5:12 ` gdr at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: gdr at gcc dot gnu dot org @ 2006-03-01 5:12 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from gdr at gcc dot gnu dot org 2006-03-01 05:12 -------
Won't fix for 3.4.6
--
gdr at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WONTFIX
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26049
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-03-01 5:12 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-31 20:46 [Bug middle-end/26049] New: ICE compiling glibc part using -O1 -m64 -mlong-double-128 bergner at vnet dot ibm dot com
2006-01-31 20:47 ` [Bug middle-end/26049] " bergner at vnet dot ibm dot com
2006-01-31 20:53 ` pinskia at gcc dot gnu dot org
2006-01-31 21:07 ` pinskia at gcc dot gnu dot org
2006-01-31 21:31 ` dje at gcc dot gnu dot org
2006-01-31 21:57 ` munroesj at us dot ibm dot com
2006-01-31 22:01 ` [Bug middle-end/26049] [3.4 only] " pinskia at gcc dot gnu dot org
2006-01-31 23:26 ` dje at gcc dot gnu dot org
2006-02-14 6:11 ` amodra at bigpond dot net dot au
2006-03-01 5:12 ` gdr 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).