On Thu, 2015-01-22 at 01:51 +0100, Oleg Endo wrote: > On Tue, 2015-01-20 at 20:05 +0900, Kaz Kojima wrote: > > Oleg Endo <oleg.e...@t-online.de> wrote: > > > The updated treg_set_expr patch is attached, which should fix the GBR > > > issues. Tests here OK. > > > Kaz, could you please try again? > > > > New tests that FAIL: > > > > libgomp.fortran/udr14.f90 -O3 -g (internal compiler error) > > libgomp.fortran/udr14.f90 -O3 -g (test for excess errors) > > > > Old tests that passed, that have disappeared: (Eeek!) > > > > gcc.target/sh/pr49263-1.c scan-assembler-not bclr > > gcc.target/sh/pr49263-1.c scan-assembler-times extu 1 > > gcc.target/sh/pr49263-2.c scan-assembler-times -129 2 > > gcc.target/sh/pr49263-2.c scan-assembler-times extu 1 > > That's OK. The patch removes the xfail markers from already committed > tests. > > > > > For the new ICE, libgomp tests log says: > > > > /exp/ldroot/dodes/LOCAL/trunk/libgomp/testsuite/libgomp.fortran/udr14.f90:15:0: > > internal compiler error: in maybe_record_trace_start, at dwarf2cfi.c:2318 > > 0x8384ad6 maybe_record_trace_start > > ../../LOCAL/trunk/gcc/dwarf2cfi.c:2318 > > 0x8385023 scan_trace > > ../../LOCAL/trunk/gcc/dwarf2cfi.c:2496 > > 0x8385b35 create_cfi_notes > > ../../LOCAL/trunk/gcc/dwarf2cfi.c:2650 > > 0x8385b35 execute_dwarf2_frame > > ../../LOCAL/trunk/gcc/dwarf2cfi.c:3006 > > 0x8385b35 execute > > ../../LOCAL/trunk/gcc/dwarf2cfi.c:3486 > > Please submit a full bug report, > > ... > > > > "./f951 udr14.f90 -g -O3 -fopenmp -o xxx.s" can reproduce this ICE. > > That's .. ugh.. > Without -g it compiles fine. The resulting code is pretty much the same > as without the patch. The only thing that combines/splits differently > are the few comparisons and movrt_negc pattern uses. With the patch the > magic constant '-1' is not shared that often anymore. This is a known > issue and small 'regression' of the patch (but a general problem on SH). > Anyway, this has nothing to do with debug info. > dwarf2cfi.c's last words are: > > Processing trace 45 : start at code_label 723 > saw edge from trace 45 to 46 (via fallthru 0) > > and the RTL there looks like this: > > (note 3417 3416 3418 (var_location x (nil)) NOTE_INSN_VAR_LOCATION) > (note 3418 3417 723 (var_location y (nil)) NOTE_INSN_VAR_LOCATION) > (code_label 723 3418 724 6 "" [1 uses]) > (note 724 723 3569 [bb 54] NOTE_INSN_BASIC_BLOCK) > (code_label 3569 724 727 103 "" [1 uses]) > (insn 727 3569 3661 (set (reg:SI 147 t) > (ge:SI (reg:SI 1 r1 [orig:286 D.1466 ] [286]) > (reg:SI 2 r2 [orig:284 D.1466 ] [284]))) udr14.f90:35 15 > {cmpgesi_t} > (nil)) > > It looks like the SH reorg pass is creating this. The compiled code > with the patch applied (without -g) also shows some constant pool > placement differences, which are done by the SH reorg pass. > > Increasing the size of define_insn_and_split "movrt_negc" from 2 to 4 > makes the problem go away with the patch. > Without the patch the ICE can be triggered by increasing the size of > define_insn_and_split "movrt_negc" from 2 to 3. > > I guess this is a latent bug/problem of SH reorg (maybe PR 59189) or the > dwarf2cfi.c code (maybe PR 64602).
I have created PR 64736 for this issue. I will install this the patch from https://gcc.gnu.org/ml/gcc-patches/2015-01/msg01743.html in 24h if there are no further objections. Cheers, Oleg