Hi! On Mon, 15 Dec 2014 23:36:11 +0100, Jan Hubicka wrote: > this is final version I comitted. > PR lto/64043 > * tree-streamer.c (preload_common_nodes): Skip preloading > of main_identifier_node, pid_type and optimization/option nodes. > --- tree-streamer.c (revision 218726) > +++ tree-streamer.c (working copy) > @@ -324,7 +324,18 @@ preload_common_nodes (struct streamer_tr > /* Skip boolean type and constants, they are frontend dependent. */ > if (i != TI_BOOLEAN_TYPE > && i != TI_BOOLEAN_FALSE > - && i != TI_BOOLEAN_TRUE) > + && i != TI_BOOLEAN_TRUE > + /* MAIN_IDENTIFIER is not always initialized by Fortran FE. */ > + && i != TI_MAIN_IDENTIFIER > + /* PID_TYPE is initialized only by C family front-ends. */ > + && i != TI_PID_TYPE > + /* Skip optimization and target option nodes; they depend on flags. */ > + && i != TI_OPTIMIZATION_DEFAULT > + && i != TI_OPTIMIZATION_CURRENT > + && i != TI_TARGET_OPTION_DEFAULT > + && i != TI_TARGET_OPTION_CURRENT > + && i != TI_CURRENT_TARGET_PRAGMA > + && i != TI_CURRENT_OPTIMIZE_PRAGMA) > record_common_node (cache, global_trees[i]); > } This regresses offloading (tested Intel MIC emulation): FAIL: libgomp.c/examples-4/e.53.5.c (internal compiler error) FAIL: libgomp.c/for-3.c (internal compiler error) FAIL: libgomp.c++/for-11.C (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.3.f90 -O2 (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.3.f90 -O3 -fomit-frame-pointer (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.3.f90 -O3 -fomit-frame-pointer -funroll-loops (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.3.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.3.f90 -O3 -g (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.3.f90 -Os (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.4.f90 -O2 (test for excess errors) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O0 (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O1 (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O2 (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O3 -fomit-frame-pointer (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O3 -fomit-frame-pointer -funroll-loops (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -O3 -g (internal compiler error) FAIL: libgomp.fortran/examples-4/e.53.5.f90 -Os (internal compiler error) FAIL: libgomp.c/examples-4/e.53.5.c (internal compiler error) [...]/source-gcc/libgomp/testsuite/libgomp.c/examples-4/e.53.5.c: In function 'accum._omp_fn.1': [...]/source-gcc/libgomp/testsuite/libgomp.c/examples-4/e.53.5.c:53:13: error: unrecognizable insn: #pragma omp parallel for reduction(+:tmp) ^ (insn 176 66 177 4 (set (reg:DI 0 ax) (symbol_ref:DI ("Q") )) -1 (nil)) [...]/source-gcc/libgomp/testsuite/libgomp.c/examples-4/e.53.5.c:53:13: internal compiler error: in extract_insn, at recog.c:2327 0x9c124a _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) [...]/source-gcc/gcc/rtl-error.c:110 0x9c1279 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) [...]/source-gcc/gcc/rtl-error.c:118 0x98f346 extract_insn(rtx_insn*) [...]/source-gcc/gcc/recog.c:2327 0x9902c8 extract_constrain_insn(rtx_insn*) [...]/source-gcc/gcc/recog.c:2228 0x998a16 copyprop_hardreg_forward_1 [...]/source-gcc/gcc/regcprop.c:773 0x99978a execute [...]/source-gcc/gcc/regcprop.c:1279 FAIL: libgomp.c/for-3.c (internal compiler error) [...]/source-gcc/libgomp/testsuite/libgomp.c/for-2.h: In function 'f13_d_normal': [...]/source-gcc/libgomp/testsuite/libgomp.c/for-2.h:171:1: error: unrecognizable insn: } ^ (insn 73 72 55 5 (set (reg/f:DI 1 dx [orig:106 D.6870 ] [106]) (plus:DI (reg:DI 0 ax [orig:105 D.6869 ] [105]) (symbol_ref:DI ("a") ))) -1 (nil)) [...]/source-gcc/libgomp/testsuite/libgomp.c/for-2.h:171:1: internal compiler error: in extract_insn, at recog.c:2327 0x9c124a _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) [...]/source-gcc/gcc/rtl-error.c:110 0x9c1279 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) [...]/source-gcc/gcc/rtl-error.c:118 0x98f346 extract_insn(rtx_insn*) [...]/source-gcc/gcc/recog.c:2327 0x98f3c4 extract_insn_cached(rtx_insn*) [...]/source-gcc/gcc/recog.c:2218 0x749cdd cleanup_subreg_operands(rtx_insn*) [...]/source-gcc/gcc/final.c:3124 0x98caf7 split_insn [...]/source-gcc/gcc/recog.c:2937 0x991657 split_all_insns() [...]/source-gcc/gcc/recog.c:2991 0x9916d8 rest_of_handle_split_after_reload [...]/source-gcc/gcc/recog.c:3938 0x9916d8 execute [...]/source-gcc/gcc/recog.c:3967 Etc. There also are related issues still open: , . Grüße, Thomas