This is the mail archive of the gcc-patches@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]

Re: [committed] Fix linux blk-merge boot problem on hppa


On 2016-03-17, at 7:38 PM, John David Anglin wrote:

> The attach patch fixes a problem causing block/blk-merge.c in the linux kernel to be miscompiled.  As a result,
> block segments were not properly split and boot failed since linux 4.3.
> 
> The problem was found by a regression search.  The patch reverts a change in the handling of the Q and T
> constraints.
> 
> Tested on hppa-unknown-linux-gnu, hppa2.0w-hp-hpux11.11and hppa64-hp-hpux11.11.  Committed to
> trunk, 4.9 and 5 branches.


Unfortunately, this change caused a regression in the handling of the Q constraint used in the dbra and movb
patterns in pa.md.  Spills with large offsets are now rejected causing the following error:

(jump_insn 61 59 62 4 (parallel [
            (set (pc)
                (if_then_else (eq (reg:SI 28 %r28)
                        (const_int 0 [0]))
                    (label_ref:SI 60)
                    (pc)))
            (set (reg/v/f:SI 100 [ fp ])
                (reg:SI 28 %r28))
        ]) Renviron.c:180 225 {*pa.md:9010}
     (expr_list:REG_DEAD (reg:SI 28 %r28)
        (int_list:REG_BR_PROB 2164 (nil)))
 -> 60)
Renviron.c:207:1: internal compiler error: in find_reloads, at reload.c:3862
0x555be3 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
        ../../src/gcc/rtl-error.c:110
0x5347ef find_reloads(rtx_insn*, int, int, int, short*)
        ../../src/gcc/reload.c:3862
0x54ad43 calculate_needs_all_insns
        ../../src/gcc/reload1.c:1540
0x54ad43 reload(rtx_insn*, int)
        ../../src/gcc/reload1.c:1028
0x425c0f do_reload
        ../../src/gcc/ira.c:5454
0x425c0f execute
        ../../src/gcc/ira.c:5613

The attached change fixes this ICE.  Tested on hppa-unknown-linux-gnu, hppa2.0w-hp-hpux11.11
and hppa64-hp-hpux11.11.  Committed to trunk, 4.9 and 5 branches.

Dave
--
John David Anglin	dave.anglin@bell.net


Attachment: predicates.md.d.txt
Description: Text document


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