[PATCH][i386] Fix PR 6585 redundant movl instructions
Thu Dec 20 00:03:00 GMT 2007
> It records a conflict between register 61 and 66 and ends up allocating
> register 61 to (%esi:%ebx) where we would prefer (%edx:%eax). This patch
> fixes it by splitting the DImode destination into two SImode parts before
> register allocation, which allows the second subreg lowering pass to replace
> the subregs with plain SImode regs which the register allocator can handle.
A few hours ago I've attached to PR17236 a patch which obtains the same
result in a target-independent way. I'm currently bootstrapping and
SPEC-testing the patch; I'll let target and middle-end maintainers judge
which approach to prefer. Yours has the obvious advantage of being
localized to the i386 backend (mine touches three passes, local-alloc,
regclass and combine...).
More information about the Gcc-patches