This is the mail archive of the gcc@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]

Re: Use of SECONDARY_RELOAD_REGISTER HELP PLEASE!!


Thanks for your help

In this rtl , the problem is that I don't feel like
making a define_insn for an ashift and a clobber
because I don't need it.
So I'm wondering how I can get rid of it?

The problem seems to me that a previous rtl was a set
that directly generate a clobber and then was merge
with an ashift keeping the clobber.

PS: I found a temporaly solution (from avr) wich
consist of the use of define_peephole2 that add a
clobber to the set if needed.
It works fine just like I want when I'm in 2 or 3
optimisation, but this doesn't work for 0 or 1...

I 'm really stuck on this problem and I really don't
know any solution..

Thanks anyway
Pierre

--- Joern Rennecke <joern.rennecke@superh.com> a
écrit : > > But this leads to problem with the
combione phase
> > (.cse) that create then unknow expression such as
> :
> > (parallel
> > (set (reg:Mode) (ashift:Mode
> (reg:Mode)(const_int)))
> > (clobber ("fixed reg"))
> 
> Presumably that fixed register was before set and/or
> clobbered by one of the combined insns.
> 
> Such an extra clobber should be really harmless.
> Don't do anything rash when you see a register in
> a clobber, just ignore it if you don't need it.
> If you find that its presence impedes optimization,
> you can use a splitter to get rid of it.
> 	
> > Then I'm takig another direction by finally use
> > SECONDARY_RELOAD_CLASS.
> > In order to do this I created two register classes
> ,
> > one with only one Pmode reg C1 and the other with
> the
> > rest of my register C2. I thought that then if he
> > wants to reload the first one C1 he will create a
> > scratch in C2 and C2 will get a C1 scratch.
> > But it appears that when he wants to reload  C1
> and
> > get C2 but just after will try C2 and get C1 ...
> ...
> > And here we go for an infinite loop.!!!!
> 
> 
> This sounds like you bothed the test that checks
> what value is being reloaded.
> 
> -- 
> --------------------------
> SuperH (UK) Ltd.
> 2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
> T:+44 1454 465658 

___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com


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