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 target/67756] [6 Regression] ICE compiling Linux Kernel fs/namei.c on ARM


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67756

--- Comment #11 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
I must admit, that I don't know what I am doing here,
... but this (completely untested) patch seems to fix the ICE:
(and at least my linux kernel compiles without ICE now)

--- lra-assigns.c.jj    2015-07-16 17:26:35.000000000 +0200
+++ lra-assigns.c       2015-10-01 14:40:06.262300720 +0200
@@ -576,7 +576,7 @@ find_hard_regno_for_1 (int regno, int *c
        /* Remember about multi-register pseudos.  For example, 2 hard
           register pseudos can start on the same hard register but can
           not start on HR and HR+1/HR-1.  */
-       for (hr = conflict_hr + 1;
+       for (hr = conflict_hr;
             hr < FIRST_PSEUDO_REGISTER && hr < conflict_hr + nregs;
             hr++)
          SET_HARD_REG_BIT (impossible_start_hard_regs, hr);



The problem starts when lra assigns r143 and r144 to r1
although both have obviously conflicting live ranges.


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