This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/45475] target use in libcpp breaks LTO bootstrap


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]