[Bug rtl-optimization/32725] Unnecessary reg-reg moves

2008-09-13 Thread pinskia at gcc dot gnu dot org
--- Comment #7 from pinskia at gcc dot gnu dot org 2008-09-14 03:47 --- Fixed for 4.4.0 by IRA. There is one less movq, though the other movq is below the mulq. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added ---

[Bug rtl-optimization/32725] Unnecessary reg-reg moves

2007-07-26 Thread scovich at gmail dot com
--- Comment #6 from scovich at gmail dot com 2007-07-26 22:51 --- I've observed several more pieces of code where this bug comes up, and it always seems to be a case of (a) the compiler duplicating a register to preserve the value after a 2-operand insn can clobbers the original, then (b

[Bug rtl-optimization/32725] Unnecessary reg-reg moves

2007-07-12 Thread ubizjak at gmail dot com
--- Comment #5 from ubizjak at gmail dot com 2007-07-12 07:05 --- (In reply to comment #3) > regmove should have changed that but it does not probably because the final > constraint does not have a duplicate operand. Actually, I think you want to > look at anddi_1_rex64, not adddi_1_re

[Bug rtl-optimization/32725] Unnecessary reg-reg moves

2007-07-11 Thread rask at sygehus dot dk
--- Comment #4 from rask at sygehus dot dk 2007-07-11 20:45 --- In reply to comment #2: Reload is unable to use a register with a REG_DEAD note for an output reload. Look at the functions find_reload_regs(), order_regs_for_reload() and find_reg() and pay attention to how they use chain->

[Bug rtl-optimization/32725] Unnecessary reg-reg moves

2007-07-11 Thread bonzini at gnu dot org
--- Comment #3 from bonzini at gnu dot org 2007-07-11 19:49 --- First, I'm not a reload expert. :-) But it does not look like a reload bug (or at least it is easily worked around in the machine description, methinks). regmove should have changed that but it does not probably because t

[Bug rtl-optimization/32725] Unnecessary reg-reg moves

2007-07-11 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2007-07-11 19:12 --- This is due to reload. It is trying to solve following pattern (insn:HI 25 24 28 2 pr32725.c:14 (parallel [ (set (reg:DI 75) (and:DI (reg:DI 71) (reg:DI 74))) (c