Re: IRA changes rules of the game

2011-10-21 Thread Richard Henderson
On 10/20/2011 07:41 AM, Paulo J. Matos wrote: > (define_insn_and_split "neghi_internal" >[(set (match_operand:QI 0 "register_operand" "=c") > (neg:QI (match_dup 0))) > (set (match_operand:QI 1 "register_operand" "=c") > (plus:QI >(plus:QI > (ltu:QI

Re: IRA changes rules of the game

2011-10-21 Thread Joern Rennecke
Quoting "Paulo J. Matos" : This is a very strange insn indeed: (set (ge (reg:QI 0 AH [orig:26 w ] [26]) (const_int 0 [0])) (plus:QI (plus:QI (ltu:QI (reg:CC 13 CC) (const_int 0 [0])) (lt (reg:QI 0 AH [orig:30 a ] [30]) (const_int 0 [0])))

Re: IRA changes rules of the game

2011-10-21 Thread Paulo J. Matos
On 21/10/11 10:02, Paolo Bonzini wrote: On 10/20/2011 07:46 PM, Paulo J. Matos wrote: However, it failed to compile libgcc with: ../../../../../../../devHost/gcc46/gcc/libgcc/../gcc/libgcc2.c:272:1: internal compiler error: in df_uses_record, at df-scan.c:3178 This feels like a GCC bug. I will

Re: IRA changes rules of the game

2011-10-21 Thread Paolo Bonzini
On 10/20/2011 07:46 PM, Paulo J. Matos wrote: However, it failed to compile libgcc with: ../../../../../../../devHost/gcc46/gcc/libgcc/../gcc/libgcc2.c:272:1: internal compiler error: in df_uses_record, at df-scan.c:3178 This feels like a GCC bug. I will try to get a better look at it tomorrow.

Re: IRA changes rules of the game

2011-10-20 Thread Paulo J. Matos
On 20/10/11 18:12, Joern Rennecke wrote: Or just change the constraint to "+c" . After trying Ulrichs suggestion and getting it to work I decided to give yours a try since it looked cleaner using +c and dups elsewhere. However, it failed to compile libgcc with: ../../../../../../../devHost

Re: IRA changes rules of the game

2011-10-20 Thread Paulo J. Matos
On 20/10/11 16:25, Ulrich Weigand wrote: When reload looks at the above pattern, it will see just two operands, both of which are output-only. So when it decides to reload one of the operands, it will only provide an output reload, no input reload. For operands that are actually used for both

Re: IRA changes rules of the game

2011-10-20 Thread Joern Rennecke
Quoting Ulrich Weigand : Paulo J. Matos wrote: (define_insn_and_split "neghi_internal" [(set (match_operand:QI 0 "register_operand" "=c") (neg:QI (match_dup 0))) (set (match_operand:QI 1 "register_operand" "=c") (plus:QI (plus:QI (ltu:QI (

Re: IRA changes rules of the game

2011-10-20 Thread Ulrich Weigand
Paulo J. Matos wrote: > (define_insn_and_split "neghi_internal" > [(set (match_operand:QI 0 "register_operand" "=c") > (neg:QI (match_dup 0))) > (set (match_operand:QI 1 "register_operand" "=c") > (plus:QI > (plus:QI > (ltu:QI (neg:QI (match_d