Re: [PATCH] Fix ICE in match_asm_constraints_1 (PR inline-asm/84941)

2018-03-20 Thread Michael Matz
Hi, On Tue, 20 Mar 2018, Jakub Jelinek wrote: > It is very common that input is one of the above cases, during x86_64-linux > and i686-linux bootstraps+regtests I got: > 13201x CONST_INT, 1959x MEM, 114x SUBREG, 110x SYMBOL_REF, > 2x PLUS (the new testcase only) > and most of those were actually

Re: [PATCH] Fix ICE in match_asm_constraints_1 (PR inline-asm/84941)

2018-03-20 Thread Jakub Jelinek
On Mon, Mar 19, 2018 at 08:38:00PM +, Michael Matz wrote: > > Ah, ok, but > > asm volatile ("" : "=m,m" (b), "=r,r" (b) : "1,p" (b)); > > ICEs the same way, and that should be valid even according to the above > > description. > > Yes that's valid and shouldn't ICE. I will change the testca

Re: [PATCH] Fix ICE in match_asm_constraints_1 (PR inline-asm/84941)

2018-03-19 Thread Michael Matz
Hi, On Mon, 19 Mar 2018, Jakub Jelinek wrote: > > Blaeh. Note that "1p" is actually invalid: > > > > -- > > `0', `1', `2', ... `9' > > An operand that matches the specified operand number is allowed. > > If a digit is used together with letters within the same > > alt

[PATCH] Fix ICE in match_asm_constraints_1 (PR inline-asm/84941)

2018-03-19 Thread Jakub Jelinek
Hi! The inline-asm here has "1p" constraint and we end up with (plus (frame) (const_int ...)) as input; even when the matching output is a REG, I'm not really sure emit_move_insn can handle arbitrary expressions (consider e.g. "1X" constraint), and calling reg_overlap_mentioned_p on something othe

Re: [PATCH] Fix ICE in match_asm_constraints_1 (PR inline-asm/84941)

2018-03-19 Thread Jakub Jelinek
On Mon, Mar 19, 2018 at 08:09:00PM +, Michael Matz wrote: > Hi, > > On Mon, 19 Mar 2018, Jakub Jelinek wrote: > > > The inline-asm here has "1p" constraint and we end up with > > (plus (frame) (const_int ...)) > > Blaeh. Note that "1p" is actually invalid: > > -- > `0', `1', `2

Re: [PATCH] Fix ICE in match_asm_constraints_1 (PR inline-asm/84941)

2018-03-19 Thread Michael Matz
Hi, On Mon, 19 Mar 2018, Jakub Jelinek wrote: > The inline-asm here has "1p" constraint and we end up with > (plus (frame) (const_int ...)) Blaeh. Note that "1p" is actually invalid: -- `0', `1', `2', ... `9' An operand that matches the specified operand number is allowed.