This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/45475] target use in libcpp breaks LTO bootstrap
- From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 29 Nov 2010 18:17:53 +0000
- Subject: [Bug lto/45475] target use in libcpp breaks LTO bootstrap
- Auto-submitted: auto-generated
- References: <bug-45475-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45475
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ebotcazou at gcc dot
| |gnu.org
--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2010-11-29 18:17:43 UTC ---
This is only the tip of the iceberg though. The attribute isn't rematerialized
on the LTRANS side so, with the help of the TYPE_MODE kludge for vector types:
/* Vector types need to check target flags to determine type. */
extern enum machine_mode vector_type_mode (const_tree);
#define TYPE_MODE(NODE) \
(TREE_CODE (TYPE_CHECK (NODE)) == VECTOR_TYPE \
? vector_type_mode (NODE) : (NODE)->type.mode)
#define SET_TYPE_MODE(NODE, MODE) \
(TYPE_CHECK (NODE)->type.mode = (MODE))
it still breaks LTO bootstrap on x86:
eric@atlantis:~/build/gcc/native32-lto> gcc/lto1 -quiet -mtune=pentium
-march=pentium -O2 -fomit-frame-pointer -fuse-linker-plugin -frandom-seed=1
-fltrans cc1.ltrans29.o
In file included from /home/eric/svn/gcc/gcc/attribs.c:7134:0,
from :3737:
/home/eric/svn/gcc/libcpp/lex.c: In function 'search_line_sse2':
/home/eric/svn/gcc/libcpp/lex.c:370:15: internal compiler error: in
convert_move, at expr.c:326
Please submit a full bug report,
Reduced testcase to be attached:
eric@atlantis:~/build/gcc/native32> gcc/xgcc -Bgcc -o lex lex.c -flto
In file included from lex.c:15:0,
from :0:
lex.c: In function 'foo':
lex.c:16:15: internal compiler error: in convert_move, at expr.c:326
Please submit a full bug report,
with preprocessed source if appropriate.
eric@atlantis:~/build/gcc/native32> gcc/xgcc -Bgcc -o lex lex.c -flto -msse2
eric@atlantis:~/build/gcc/native32>
The TYPE_MODE kludge makes the mode of vector types depend on the attribute.