On 10/11/18 1:23 PM, Peter Bergner wrote: > On 10/11/18 1:18 PM, Peter Bergner wrote: >> Ok, after working in gdb, I see that the PA-RISC port still uses reload >> and not LRA, but it too seems to have the same issue of reusing input >> regs that have REG_DEAD notes, so the question still stands. It's just >> that whatever fix we come up with will have to be to both LRA and reload. > > On second thought, I'm thinking we should just leave reload alone and > only fix this in LRA. That means we'd have to disable the reg copy > handling when not using LRA though, which might be another reason to > get targets to move to LRA? I've verified the following patch gets > the PA-RISC test case to pass again. Thoughts? > > If ok, I still have to dig into the fails we're seeing on LRA targets. > > Peter > > * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. So this helped the alpha & hppa and sh4.
I'm still seeing failures on the aarch64, s390x. No surprise on these since they use LRA by default and would be unaffected by this patch. You've got state on the aarch64 issue where we generate bogus code for the kernel which (thankfully) the assembler complained about. For s390x the stage3 compiler fails its selftest with: /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/./gcc/xgcc -B/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/./gcc/ -xc -nostdinc /dev/null -S -o /dev/null -fself-test=../../../gcc/gcc/testsuite/selftests ../../../gcc/gcc/input.c:2423: test_lexer_string_locations_simple: FAIL: ASSERT_EQ (expected_start_col, actual_start_col) cc1: internal compiler error: in fail, at selftest.c:47 0x2171da3 selftest::fail(selftest::location const&, char const*) ../../../gcc/gcc/selftest.c:47 0x2192bb3 assert_char_at_range ../../../gcc/gcc/input.c:2299 0x2198ddb test_lexer_string_locations_simple ../../../gcc/gcc/input.c:2423 0x2194a57 selftest::for_each_line_table_case(void (*)(selftest::line_table_case const&)) ../../../gcc/gcc/input.c:3533 0x2194dcf selftest::input_c_tests() ../../../gcc/gcc/input.c:3556 0x21061e9 selftest::run_tests() ../../../gcc/gcc/selftest-run-tests.c:80 0x1869f6d toplev::run_self_tests() ../../../gcc/gcc/toplev.c:2234 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. make[3]: *** [Makefile:1979: s-selftest-c] Error 1 That's an indication that we've mis-compiled GCC along the way since the selftest was successful with the stage1 and stage2 compiler. Given you can see the aarch64 failure with a cross and we haven't done any real analysis on the s390 failure, I'd focus on aarch64. I'd ignore any pathname weirdness and track down why we generate the bogus code the assembler complains about. There's also still an arm-linux-gnueabi failure, but I haven't bisected it to your change. GCC bootstraps, but fails with an odd error in the linemap code while building the kernel. jeff