[Bug middle-end/37364] [4.4 Regression] IRA generates ineffient code

2008-09-04 Thread rguenth at gcc dot gnu dot org
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Keywords||missed-optimization, ra Target Milestone|---

[Bug middle-end/37364] [4.4 Regression] IRA generates ineffient code

2008-09-04 Thread hjl dot tools at gmail dot com
--- Comment #1 from hjl dot tools at gmail dot com 2008-09-04 16:02 --- "-O2 -march=core2 -fno-ira -fno-regmove" generates movqx(%rip), %mm0 paddd y(%rip), %mm0 movq%mm0, -8(%rsp) movq-8(%rsp), %rax It seems that regmove isn't effective for

[Bug middle-end/37364] [4.4 Regression] IRA generates ineffient code

2008-09-04 Thread hjl dot tools at gmail dot com
--- Comment #2 from hjl dot tools at gmail dot com 2008-09-04 16:13 --- (In reply to comment #1) > "-O2 -march=core2 -fno-ira -fno-regmove" generates > > movqx(%rip), %mm0 > paddd y(%rip), %mm0 > movq%mm0, -8(%rsp) > movq-8(%rsp), %rax > >

[Bug middle-end/37364] [4.4 Regression] IRA generates ineffient code

2008-09-04 Thread hjl dot tools at gmail dot com
--- Comment #3 from hjl dot tools at gmail dot com 2008-09-04 17:43 --- The problem may be in IRA_COVER_CLASSES. -mtune=core2 turns on TARGET_INTER_UNIT_MOVES, which means move between mmx and 64bit integer registers is cheaper than load/store. But IRA doesn't handle it properly. --

[Bug middle-end/37364] [4.4 Regression] IRA generates ineffient code

2008-09-04 Thread hjl dot tools at gmail dot com
--- Comment #4 from hjl dot tools at gmail dot com 2008-09-04 17:54 --- (In reply to comment #3) > The problem may be in IRA_COVER_CLASSES. -mtune=core2 turns on > TARGET_INTER_UNIT_MOVES, which means move between mmx and 64bit > integer registers is cheaper than load/store. But IRA does