[PATCH] Make avoid_constant_pool_reference smarter

Paolo Bonzini paolo.bonzini@lu.unisi.ch
Wed May 25 07:45:00 GMT 2005


This patch moves one case from CSE's fold_rtx_mem to 
avoid_constant_pool_reference.  CSE can extract the low part of a 
constant that resides in the pool, or a single word of a multiword 
constant.  In a slightly cleaner way, a_c_p_r uses simplify_subreg to 
convert constants between different modes.  This patch equips a_c_p_r to 
support offsetted addresses (e.g. to extract words from multiword 
constants).

In CSE's fold_rtx_mem, the part dealing with LABEL_REF (basically 
performing a kind of jump threading) is practically dead and was toggles 
even less frequently since Alexandre Oliva fixed PR18628 (the dead-label 
bug).  So, fold_rtx_mem could reduce to 
find_best_addr+avoid_constant_pool_reference.  And similarly, 
equiv_constant's MEM case could be reduced to 
avoid_constant_pool_reference+lookup.

These however are follow-ups that cannot happen in the 4.1 frame (and 
I'm thinking more and more about a branch...).

Bootstrapped/regtested all languages on powerpc-apple-darwin7, ok for 
mainline?

Paolo
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: avoid-cpool-smarter.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20050525/4eebcbd7/attachment.ksh>


More information about the Gcc-patches mailing list