Splitters on MovMM are problematic.
One problem is that it creates issues with base pointers. AVR base
pointer are limited to 64 byte offsets - after that they are inline
additions (and perhaps subtractions). So splitting such a move in a
large mode is a world of hurt. A future endeavour perhaps may solve
this - but for now, it's on the "too difficult pile"
I dont think it is relevant here. The missing optimisation of the
testcase is more closely related to the arithmetic than to the moves.
The output move is already "split" by subreg lowering. After that there
are not any pure large mode moves of significance left. Other (non
move) splitters can create moves - but these are small and will not be
split further.
Andy
-----Original Message-----
From: Dave Korn <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Cc: gcc@gcc.gnu.org
Sent: Wed, 20 Feb 2008 2:15 pm
Subject: RE: Redundant logical operations left after early splitting
On 20 February 2008 18:05, [EMAIL PROTECTED] wrote:
But it does seem that the missing piece is effective constant
propagation + simplification after splits and subregs - which is
currently ineffective in local-alloc (or any later pass)
Hmm, more questions: do you use splitters or insns for your movMM
patterns?
Do you implement all the movMM patterns? Just checking if we've
covered every
angle ...
cheers,
DaveK
--
Can't think of a witty .sigline today....
________________________________________________________________________
More new features than ever. Check out the new AIM(R) Mail ! -
http://webmail.aim.com