This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] SH: New define_split sh.md


Hi,

The attached patch does a simple post-reload split
statements of the form

    mov #250, r1
    
to
    mov #125, r1
    shll r1

SH requires a pc-relative literal pool load for constant data 
more than 2 bytes long. To avoid it, we can synthesize the constant in
some cases by using a smaller constant and shift operation.
The rationale behind doing constant synthesis 
is that it would ease the pressure on LS unit 
by converting literal pool loads into  two EX group instructions.
This helps in better scheduling. So this should be a win.

Regtested for sh-elf cross.

Best Regards,
    Naveen Sharma.


2003-10-10	Naveen Sharma	<naveens@noida.hcltech.com>

	* gcc/config/sh/sh.md (casesi_worker_0+1): New define_split pattern
to 
	synthesize large constants to avoid a literal pool.

Attachment: CONST_SYNTH.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]